1. Zookeeper正常部署
首先保证Zookeeper集群的正常部署并启动,参考:Zookeeper 二、安装部署 3.集群模式安装
2. Hadoop正常部署
Hbase依赖Hadoop组件,因此Hadoop 集群也需正常部署并启动,参考:Hadoop 六、Hadoop安装部署 3. 完全分布式运行模式(开发重点)
3. HBase的解压
[root@hadoop101 hbase]# tar -zxvf hbase-1.3.1-bin.tar.gz -C /opt/module/
4. HBase 的配置文件
修改三个文件
hbase-env.sh
、hbase-site.xml
、regionservers
4.1 hbase-env.sh
用于配置hbase的环境信息,修改如下三个地方
# 1. JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.6.0_144
# 2. 可以选择注释掉下面2个配置,不注释也可以,在JDK8+环境下使用该配置启动时会报2个警告,因此此处注释掉
# Configure PermSize. Only needed in JDK7. You can safely remove it for JDK8+
#export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"
#export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"
# 3. HBASE自带zk,如果不修改为false,在hbase启动时会使用自带的zk,修改掉我们自己zk的pid,下次导致启动失败。因此当前需要使用我们自己的zk
export HBASE_MANAGES_ZK=false
4.2 hbase-site.xml
全部配置信息详解———>hbase-default.xml
<configuration>
<!-- 指定hbase数据在hadoop中存储目录 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop101:9000/HBase</value>
</property>
<!-- 分布式 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 0.98 前,之前版本没有.port,默认端口为 60000 -->
<!-- 0.98 后,master端口号16000;还可以配置webUI端口号,默认是16010 -->
<property>
<name>hbase.master.port</name>
<value>16000</value>
</property>
<!-- zk地址 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop101,hadoop102,hadoop103</value>
</property>
<!-- zk的功能目录,zk在磁盘上数据存储的目录 version 2 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/module/zookeeper-3.4.10/zkData</value>
</property>
</configuration>
4.3 regionservers
所有regionserver的地址
hadoop101
hadoop102
hadoop103
4.4 软连接hadoop配置文件到HBase
告诉Hbase,hadoop的
core-site.xml
和hdfs-site.xml
配置
[root@hadoop101 conf]# ln -s /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml /opt/module/hbase/conf/core-site.xml
[root@hadoop101 conf]# ln -s /opt/module/hadoop-2.7.2/etc/hadoop/hdfs-site.xml /opt/module/hbase/conf/hdfs-site.xml
4.5 分发
xsync hbase/
4.6 启动
4.6.1 集群时间同步问题
注意:如果集群之间的节点时间不同步,会导致 regionserver 无法启动,抛出 **ClockOutOfSyncException**
异常。
解决:a. 同步时间服务,参考:Hadoop 九、集群时间同步
b. 属性: hbase.master.maxclockskew
设置最大时钟偏差为更大的值
<!-- 允许regionserver之间最大时间差 -->
<property>
<name>hbase.master.maxclockskew</name>
<value>180000</value>
<description>Time difference of regionserver from master</description>
</property>
4.6.2 单独启动(不推荐)
- 分别启动master和regionserver
- hadoop101的master和regionserver
- hadoop102的regionserver
- hadoop103的regionserver
# 启动HMaster
[root@hadoop101 bin]# ./hbase-daemon.sh start master
# 启动HRegionServer
[root@hadoop101 bin]# ./hbase-daemon.sh start regionserver
# 停止HMaster
[root@hadoop101 bin]# ./hbase-daemon.sh stop master
# 停止HRegionServer
[root@hadoop101 bin]# ./hbase-daemon.sh stop regionserver
4.6.3 群起/群停(推荐)
注意:在哪台机器起,这台机器默认就是master
bin/start-hbase.sh
bin/stop-hbase.sh
4.7 HBase的可视化页面
Web端默认端口16010 http://hadoop101:16010
4.8 日志
日志分为master和regionserver两种