摘 要
hbase集群搭建与调优。
前言
本文持续更新中,主要因为我也是在工作中逐渐探索中,所以在工作中遇到的配置调优,都将第一时间更新到本文中,用作以后标准配置。
版本介绍
本文基于当前最稳定兼容版本如下:
hadoop-2.7.3
hbase-1.2.5
zookeeper-3.4.10
配置文件介绍
Apache HBase使用与Apache Hadoop相同的配置系统,所有配置文件都位于conf/
目录中。该目录需要与集群中的每个节点保持同步。
backup-masters
纯文本文件,用于描述备用主机,一行一个主机。
hadoop-metrics2-hbase.properties
用于连接HBase Hadoop的Metrics2框架。
hbase-env.sh & hbase-env.cmd
用于Windows和Linux / Unix环境的脚本,用于设置HBase的工作环境,包括Java,Java选项和其他环境变量的位置。该文件包含许多注释的例子来提供指导。
hbase-policy.xml
RPC服务器使用的默认策略配置文件对客户端请求做出授权决策。仅在启用HBase安全性时使用。
hbase-site.xml
主要的HBase配置文件。该文件指定了覆盖HBase的默认配置的配置选项。
log4j.properties
HBase记录的配置文件log4j
。
regionservers
一个纯文本文件,其中包含应该在HBase集群中运行RegionServer的主机列表。
集群配置
HDFS DataNode在任何一个时间都会提供的文件数量上限。在进行任何加载之前,请确保已配置Hadoop的conf/hdfs-site.xml
,将该dfs.datanode.max.transfer.threads
值设置为至少以下值:
<property>
<name>dfs.datanode.max.transfer.threads</name>
<value>4096</value>
</property>
进行上述配置后,请务必重新启动HDFS。
编辑 hbase-env.sh
代码语言:javascript复制#修改jdk安装位置
export JAVA_HOME=/usr/java/jdk1.7.0/
#设置hbase堆内存,默认情况下为1G,但最优情况下为8G~16G
export HBASE_HEAPSIZE=8G
#修改master的jvm参数,master不参与实际计算,酌情修改。默认值:128m
export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=2g -XX:MaxPermSize=2g"
#修改regionserver的jvm参数,由于该参数直接影响数据存储及计算节点。适当调大。默认值为:128m
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=8g -XX:MaxPermSize=8g"
#hbase pid存储位置,默认存放于系统/tmp目录
export HBASE_PID_DIR=/var/hadoop/pids
#同时启动zk实例,建议关闭。
export HBASE_MANAGES_ZK=false
编辑 hbase-site.xml
代码语言:javascript复制<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>zookeeper1,zookeeper2,zookeeper3</value>
</property>
<!-- 设置hbase临时目录,默认系统目录/tmp-->
<property>
<name>hbase.tmp.dir</name>
<value>/data/dfs/hbase</value>
</property>
<!--在RegionServers上旋转的RPC侦听器实例的计数。主人使用相同的属性来计算主处理程序。 默认30-->
<property>
<name>hbase.regionserver.handler.count</name>
<value>100</value>
</property>
<!-- 设置心跳时间,默认三分钟,时间越短,代表故障节点更早的发现。-->
<property>
<name>zookeeper.session.timeout</name>
<value>60000</value>
</property>
</configuration>
配置 regionserver
worker1 worker2 ……
设置backup-masters
master1 master2 ……