读书笔记-HBase in Action-第四部分-(1)部署,-hbaseaction-


最后一部分了。。。分两章吧。HBase和Hadoop紧密相关,更为具体的部署和运维内容推荐Hadoop Operations和HBase Administration Cookbook。本文粗粒度列出一些HBase部署运维的最佳实践和基本原则。

集群规划

一个完整的HBase集群包含HBase Master,ZooKeeper,RegionServers和Hadoop相关组件。生产集群按照规模大小可分为小型(10-20个节点)、中型(50个节点)和大型(超过50个节点)。集群规划需要为这些组件选择合适的硬件配置和部署分布:

另外,从性价比和易用性角度来讲,可以考虑Amazon提供的AWS云服务。

部署工具&发行版本

自动化部署工具一般使用Puppet或者Chef。Apache提供了Whirr帮助在云端部署HBase,其他发行版也有自己专门的部署管理工具。

据我所知,基本还没有公司在生产环境使用Apache Hadoop原生发行版,要么自己改改(大公司,比如狼厂),要么使用Cloudera的CDH发行版或者Hortonworks的HDP平台(中小企业)。CDH等版本的优点是在Apache发行版的基础上打了不少patches(patches本身一般也会在Apache代码库中,但还不在当前发行版中)修正bug,经过更严格的测试,稳定性和性能方面都会有所改善。

配置参数

HBase所有配置参数请参考主页文档http://hbase.apache.org/book/configuration.html。这节会列出部分重要参数,在下一章的性能调优相关章节还会继续介绍一些重要参数。

HBase配置参数分两部分,一部分是环境变量配置在hbase-env.sh,另一部分在hbase-site.xml中。Hbase-evn.sh中的环境变量被Master和RegionServer的启动脚本读取,比如Java堆大小、垃圾回收设置等参数。以HBASE_REGIONSERVER_OPTS为例:

-Xmx8g -Xms8g -Xmn128m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=70

与HBase相关的Hadoop的配置参数要注意dfs.datanode.max.xcievers,代表DataNode上HDFS客户端读写数据的最大线程数,默认的256太低了,可以设置成4096;操作系统方面,需要修改ulimit最大打开文件数量,保持文件打开让HBase不用每次读写操作都打开关闭文件,另外一个是swap交换行为,在RegionServer上发生交换严重影响性能

$ sysctl -w vm.swappiness=0

守护进程管理

hbase-daemon.sh脚本通过ssh管理各个节点上的守护进程:

$HBASE_HOME/bin/hbase-daemon.sh --config$HBASE_HOME/conf/ start master
$HBASE_HOME/bin/hbase-daemon.sh --config$HBASE_HOME/conf/ start regionserver
$HBASE_HOME/bin/hbase-daemon.sh --config$HBASE_HOME/conf/ start master-
backup
$HBASE_HOME/bin/hbase-daemon.sh --config$HBASE_HOME/conf/ stop master
$HBASE_HOME/bin/hbase-daemon.sh --config$HBASE_HOME/conf/ stop regionserver
$HBASE_HOME/bin/hbase-daemon.sh --config$HBASE_HOME/conf/ stop master-backup

通过HBase Shell或者HBase Master带的Web UI可以查看系统状态




hadoop视频教程下载?

免费的目前好像还没有,收费的也不是很多,价格高的离谱!这个东西门槛相对高一点,我只有一台电脑就不好搞这玩意!老衲最近也再搞这个!看视频也就加深一点概念的理解!还是多看书,多练习吧!
 


相关内容