HBase的详细安装部署
一、部署
1.zookeeper正常部署,并且启动
2.hadoop正常部署,并且启动
3.hbase的解压
解压hbase到指定目录
tar -xvf /hbase.tar.gz -c /airpath
4.hbase的配置文件(conf下的文件)
hbase-env.xml:
export java_home=/home/admin/modules/jdk1.8.0_121 export hbase_manages_zk=false
hbase-site.xml:
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://linux01:8020/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <!-- 0.98 后的新变动,之前版本没有.port,默认端口为 60000 --> <property> <name>hbase.master.port</name> <value>16000</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>linux01:2181,linux02:2181,linux03:2181</value> </property> <property> <name>hbase.zookeeper.property.datadir</name> <value>/home/admin/modules/zookeeper-3.4.5/zkdata</value> </property> </configuration>
regionservers:
cluster01 cluster02 cluster03
5.hbase需要以来的jar包
由于hbase需要依赖hadoop,所以替换hbase的 lib目录下的jar包,以解决兼容性问题
1.删除原有的jar:
$ rm -rf /home/admin/modules/hbase-1.3.1/lib/hadoop-*
$ rm -rf /home/admin/modules/hbase-1.3.1/lib/zookeeper-3.4.6.jar
2.拷贝对应hadoop版本的新jar,我这里是hadoop-2.7.2
赠送当前版本查找jar包命令:find ....../hadoop-2.7.2/ -name hadoop-annotations*
hadoop-annotations-2.7.2.jar hadoop-auth-2.7.2.jar hadoop-client-2.7.2.jar hadoop-common-2.7.2.jar hadoop-hdfs-2.7.2.jar hadoop-mapreduce-client-app-2.7.2.jar hadoop-mapreduce-client-common-2.7.2.jar hadoop-mapreduce-client-core-2.7.2.jar hadoop-mapreduce-client-hs-2.7.2.jar hadoop-mapreduce-client-hs-plugins-2.7.2.jar hadoop-mapreduce-client-jobclient-2.7.2.jar hadoop-mapreduce-client-jobclient-2.7.2-tests.jar hadoop-mapreduce-client-shuffle-2.7.2.jar hadoop-yarn-api-2.7.2.jar hadoop-yarn-applications-distributedshell-2.7.2.jar hadoop-yarn-applications-unmanaged-am-launcher-2.7.2.jar hadoop-yarn-client-2.7.2.jar hadoop-yarn-common-2.7.2.jar hadoop-yarn-server-applicationhistoryservice-2.7.2.jar hadoop-yarn-server-common-2.7.2.jar hadoop-yarn-server-nodemanager-2.7.2.jar hadoop-yarn-server-resourcemanager-2.7.2.jar hadoop-yarn-server-tests-2.7.2.jar
hadoop-yarn-server-web-proxy-2.7.2.jar
zookeeper-3.4.5.jar
6.hbase软连接hadoop配置
$ ln -s ~/modules/hadoop-2.7.2/etc/hadoop/core-site.xml ~/modules/hbase-1.3.1/conf/core-site.xml $ ln -s ~/modules/hadoop-2.7.2/etc/hadoop/hdfs-site.xml ~/modules/hbase-1.3.1/conf/hdfs-site.xml
7.hbase分发到其他集群节点
$ scp -r /home/admin/modules/hbase-1.3.1/ cluster02:/home/admin/modules/
$ scp -r /home/admin/modules/hbase-1.3.1/ cluster03:/home/admin/modules/
或者同步命令:xsyns //home/admin/modules/hbase-1.3.1/
8.启动hbase:
1)bin/hbase-daemon.sh start master
bin/hbase-daemon.sh start regionserver
特别提示: 如果集群之间的节点时间不同步, 会导致 regionserver 无法启动,抛出clockoutofsyncexception 异常
2) bin/start-hbase.sh
bin/stop-hbase.sh
特别提 示: 如果使用的是 jdk8 以 上 版 本 , 则 应 在 hbase-evn.sh 中 移除“hbase_master_opts”和“hbase_regionserver_opts”配置。
二、hbase高可用
在 hbase 中 hmaster 负责监控 regionserver 的生命周期,均衡 regionserver 的负载,如果 hmaster 挂掉了,那么整个 hbase 集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。所以 hbase 支持对 hmaster 的高可用配置。
2.1关闭hbase集群,如果没有开启跳过这一步
bin/stop-hbase.sh
2.2在conf目录下创建backup-master文件
touch conf/backup-masters
2.3在backup-masters文件中配置高可用hmaster节点
echo cluster02 >> conf/backup-masters
2.4将整个conf目录scp到其他节点
$ scp -r conf/ cluster02:/opt/modules/cdh/hbase-0.98.6-cdh5.3.6/ $ scp -r conf/ cluster03:/opt/modules/cdh/hbase-0.98.6-cdh5.3.6/ 或者同步xsyns
2.5打开页面测试查看
http://cluster01:16010
http://cluster02:16010