HBase配置文件详解:
1、HBase配置文件
hbase-site.xml:HBase最主要的配置文件。
hbase-env.sh:设置HBase运行所需的工作环境。
backup-masters:列出哪些服务器应启动备用HMaster进程。
regionservers:列出了哪些服务器启动HRegionServer进程。
hbase-policy.xml:PRC服务器对客户端请求进行权限验证时使用的策略配置文件,仅当启用HBase安全管理时才使用。
log4j.properties:HBase所使用的日志模块log4j的配置文件。
hadoop-metrics2-hbase.properties:该配置文件将HBase集群与Hadoop的Metrics2框架相关联,可用于实时收集HBase集群的各类监控信息。
上述7个HBase配置文件的路径和内容在每个节点上都必须一致。
2、主要配置项
hbase.cluster.distributed:是否为分布式运行模式,默认值为false。
hbase.tmp.dir:HBase节点在本地文件系统中的临时目录,默认值为${java.io.tmpdir}/hbase-${user.name}。
hbase.rootdir:HBase所保存文件的根目录,默认值为${hbase.tmp.dir}/hbase。
hbase.fs.tmp.dir:HBase集群在HDFS文件系统中保存临时数据的中转目录,默认值为/user/${user.name}/hbase-staging。
hbase.local.dir:HBase节点在本地文件系统中用于本地存储的目录,默认值为${hbase.tmp.dir}/local。
hbase.zookeeper.quorum:哪些服务器上运行ZooKeeper进程,默认值为localhost。
hbase.zookeeper.property.dataDir:ZooKeeper用于保存数据的目录,默认值为${hbase.tmp.dir}/zookeeper。
hbase.zookeeper.property.maxClientCnxns:每个ZooKeeper服务器允许接受的客户端并发连接数量,默认值为300。
zookeeper.session.timeout:ZooKeeper会话的超时时间,单位是毫秒,默认值是90000。
hbase.master.port:HMaster进程绑定的端口号,默认值为16000。
hbase.master.info.port:HBase Master的Web页面的端口号,默认值为16010。
hbase.master.wait.on.regionservers.mintostart:HBase集群启动时HMaster在有多少个HRegionServer启动后开始分配任务,默认值为1。
hbase.regionserver.port:HRegionServer进程绑定的端口号,默认值为16020。
hbase.regionserver.info.port:HRegionServer的Web页面的端口号,默认值为16030。
hbase.regionserver.handler.count:每台HRegionServer和HMaster上用于侦听响应客户端请求的线程数量,默认值为30。
hbase.ipc.server.callqueue.handler.factor:每台HRegionServer和HMaster上对应于处理线程数的调用等待队列数量因子,范围在0到1之间,默认值为0.1,表示每10个处理线程共享一个调用等待队列。
hbase.hregion.max.filesize:一个HRegion中所有Hfile文件合计大小上限,默认值为10737418240,即10G。
hbase.hregion.majorcompaction:HRegion数据自动进行周期性主压缩的间隔时间,单位是毫秒,默认值为604800000,即7天。
hbase.hregion.majorcompaction.jitter:随机执行周期性主压缩操作的前后时间范围,默认值为0.5。
hbase.hregion.memstore.flush.size:Store中的MemStore达到多大时会存入磁盘生成StoreFile,默认值为134217728,即128M。
hbase.regionserver.global.memstore.size:HRegionServer中所有MemStore合计大小的上限,按照堆内存的百分比计算,默认值为0.4,即上限为堆内存的40%。
hfile.block.cache.size:最多使用堆内存的百分之多少作为StoreFile的块缓存,默认值为0.4,即上限为堆内存的40%。
hbase.balancer.period:HMaster运行HRegion均衡器的周期,单位是毫秒,默认值为300000。
hbase.client.write.buffer:HBase服务器端和客户端写入数据库缓冲区的大小,默认值为2097152,即2M。
hbase.security.authentication:是否启用HBase客户端安全认证,默认值为simple,表示不进行安全认证。
3、配置建议
1)hbase-site.xml
必须配置以下参数:
hbase.cluster.distributed
hbase.tmp.dir
hbase.rootdir
hbase.zookeeper.quorum
建议配置以下参数:
hbase.zookeeper.property.dataDir
hbase.master.wait.on.regionservers.mintostart
hbase.regionserver.handler.count
hbase.hregion.majorcompaction
hbase.hregion.majorcompaction.jitter
hbase.regionserver.global.memstore.size
hfile.block.cache.size
hbase.client.write.buffer
2)hbase-env.sh 示例如下:
# The java implementation to use. Java 1.7+ required.
export JAVA_HOME=/etc/alternatives/jre_1.7.0_openjdk
# The maximum amount of heap to use. Default is left to JVM default.
export HBASE_HEAPSIZE=8G
# Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=false
4、客户端配置
在客户端解压HBase安装包并将解压后的lib/子目录和conf/子目录加入到客户端的CLASSPATH环境变量中;
客户端的配置比较简单,只需要在conf/hbase-site.xml配置文件中设置好参数hbase.zookeeper.quorum即可,示例如下:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave2,slave3</value>
</property>
</configuration>
hbase.zookeeper.quorum 配置值中不能包含空格。