HBase分布式集群搭建

来源:互联网 发布:基础地理数据分类 编辑:程序博客网 时间:2024/05/21 14:48
一、环境准备
   JDK1.8.0_131
   Hadoop集群:
   hadoop01(namenode)
   hadoop02(datanode)
   hadoop03(datanode)
   zookeepr集群
二、官网下载tar包
http://www.apache.org/dyn/closer.cgi/hbase/
这里下载的是1.3.1版本的,把下载好的tar包复制到/opt目录下
三、解压tar包
[root@hadoop01 opt]# tar -zxvf hbase-1.3.1-bin.tar.gz
四、配置环境变量
[root@hadoop01 opt]# vi /etc/profile
添加:
export HBASE_HOME=/opt/hbase
更新:
export PATH=$HBASE_HOME/bin:$PATH
五、修改hbase配置文件
1、修改/opt/hbase/conf/hbase-env.sh
加入java的环境变量
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_131

2、zookeeper默认由hbase集成的方式部署,如果要想独立部署,需要在hbase-env.sh文件中,将HBASE_MANAGES_ZK设置成false
export HBASE_MANAGES_ZK=false

3、编辑/opt/hbase/conf/hbase-site.xml 添加配置信息
<property>
    <name>hbase.rootdir</name>
    <value>hdfs://hadoop01:9000/hbase</value>
    <description>hbase的存储根路径</description>        
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
    <description>是否采用集群方式部署</description>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>hadoop01,hadoop02,hadoop03</value>
    <description>zookeeper的server地址,多台机器用逗号隔开</description>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/opt/zookeeper/tmp</value>
    <description>zookeeper的数据存储目录</description>
  </property>
4、配置regionservers 存放从节点的地址信息,类似于Hadoop集群中的slaves配置文件,添加相应的机器ip
添加
hadoop02
hadoop03
六、把配置好的文件复制到其他的节点上
[root@hadoop01 opt]# scp -r hbase hadoop02:/opt
[root@hadoop01 opt]# scp -r hbase hadoop03:/opt
七、启动hbase
启动hbase时要确保hdfs已经启动,zookeeper已启动。在主节点上执行:[root@hadoop01 opt]# start-hbase.sh
八、验证
在主节点上执行jps 可以观察到HMaster进程,说明启动成功
在从节点上执行jos 可以观察到HRegionServer
九、hbase客户端shell启动命令(/opt/hbase/bin下)
./hbase shell
十、启动错误解决
1、第一次启动时日志中输出如下信息:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/hbase/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/hadoop-2.7.3/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
这说明HBase中的slf4j-log4j12-1.7.5.jar文件和hadoop中的冲突了,删掉HBase中的重启即可,如有其它jar冲突,做法一样。
2、ERROR [main] zookeeper.RecoverableZooKeeper: ZooKeeper exists failed after 4 attempts

查看网上说是hbase.zookeeper.quorum没有设置成正确的zookeeper机器(集群)的地址,我检查后发现没有问题重启换是报错,后面我尝试了先启动zookeeper集群后在启动hbase 成功了

[root@hadoop01 zookeeper]# hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.3.1, r930b9a55528fe45d8edce7af42fef2d35e77677a, Thu Apr  6 19:36:54 PDT 2017

hbase(main):001:0>


原创粉丝点击