《HBase权威指南》读书笔记2

来源:互联网 发布:唐麦f3耳机怎么样 知乎 编辑:程序博客网 时间:2024/06/11 16:27

2.1快速启动指南

  • hbase-site.xml 里面的 hbase.rootdir 记得要修改否则默认是在 /tmp/hbase-${user.name} 下,如果服务器重启数据就有可能会丢失

2.2.1硬件

  • 至少需要64位系统,至少要分配大于4G的内存给HBASE,所以机器要24G
  • cpu要2个4核
  • slave硬盘要使用JBOD,master用RAID0+1 或者 RAID 1+0 ,但是磁盘要使用带RAID固件的磁盘,这样一旦硬件出错,RAID固件马上失效,这样datanode可以快速知道
  • 磁盘用6~12 个1~2T的磁盘
以下是 拥有800TB 存储空间的集群中每个java进程的典型内存配置
进程堆描述NameNode8G每100TB的数据或者是每100万个文件大约会占用NameNode 1G的内存SecondaryNameNode8G在内存中重做主NameNode的EditLog,因此配置需要与NameNode一样JobTracker2G适度HBase Master4G轻量级负载,适度DataNode1G适度TaskTracker1G适度HBase RegionServer12G大部分可用内存,同时为操作系统(缓冲区缓存)和任务进程留下足够的空间Task Attempts1G剩余内存除以允许的任务最大的单机进程数ZooKeeper1G适度
推荐配置:master机器要运行NameNode, SecondaryNameNode, JobTracker 和 HBaseMaster 推荐24G 内存, slave 要运行 DataNode, TaskTracker, 和 HBase RegionServer 推荐24G以上
节点类型推荐master24Gslave24G以上
磁盘
节点类型推荐master4X1T SATA, RAID 0+1 (也可以用2T)slave6X1T SATA, JBOD
网络
节点类型推荐master万兆以太网, 双PSU, 1U 或者2Uslave万兆以太网, 单PSU, 1U 或者2U

文件系统

使用ext3要注意以下几点优化
  • 挂载文件系统的时候设置noatime属性来禁止记录文件访问时间戳以减少内核的管理开销
使用ext4时需要注意
  • 关闭延迟分配(delayed allocation)采用延迟分配数据会保留在内存中,该特性增加了服务器崩溃的时候丢失数据的概率
如果出现Too Many open files错误就要增加Linux系统的文件打开数设置为超过10000
在HBase的日志第一行就打印了ulimit 信息
还需要调整 /etc/sysctl.conf 调整 fs.file-max的值

DataNode 处理线程数

DataNode 会设置服务时可处理的文件数上限,叫 xcievers
<property><name>dfs.datanode.max.xcievers</name><value>4096</value></property>
否则容易出现以下问题

SWAP

swap在服务器上已经逐渐的被禁止了,因为一旦使用了swap会导致机器性能低下,甚至连ssh都连不上。如果使用了swap就容易出现 租约换效 。
服务器如果在交换过程中被唤醒,master认为region已经死了,region却不知道,并再次向master汇报信息,这时region会收到master的YouAreDeadException异常,并认为自己需要进入死亡状态,并自杀(称为 朱丽叶暂停)
可以通过 vm.swappiness=5 可以设置成0,以减少交换区的使用频率

Amazon S3

Amazon S3 支持Hadoop 的 两种模式 raw/native 和 block

分布式模式

  • conf/hbase-env.sh 中设置 HBASE_MANAGES_ZK 为 true,可以将zookeeper作为HBase的一部分启动(默认就是true)
  • HBase读取哪份Hadoop集群配置是由 hbase-env.sh 中 HADOOP_CONF_DIR 决定的,并且记得把 HADOOP_CONF_DIR 加到 HBASE_CLASSPATH 中
  • HBase 配置文件的参数可以覆盖 HDFS 配置文件中的参数

客户端配置

客户端通过读取 hbase-site.xml 中的hbase.zookeeper.quorum参数来连接region server



0 0
原创粉丝点击