HBase ZooKeeper Distributed 完全分布式安装

昨天写了HBase 完全分布式 安装配置,其中用到了HBase自带的ZK管理。不过看到帖子上很多说要单独安装zookeeper,于是尝试着安装zookeeper。其实安装zookeeper很简单,关键在zookeeper正常启动并和HBase协同工作,在尝试之前是不知道是否可以行得通,不过再尝试了几个小时之后,终于正常启动了。

需要环境:

      OS:      CentOS 5.5   (可以根据自己的需要来使用Linux环境)

      JDK:     1.6.0_32      (JDK 1.6版本的最新版本)

      hadoop:   Hadoop 1.0.3(目前Hadoop稳定的最新版本)

      hbase:    HBase 0.92.1(目前HBase稳定的最新版本,至少跟Hadoop1.0.3是兼容的)

zookeeper: 3.3.5           (目前ZooKeeper稳定的最新版本)

 

1. 下载zookeeper-3.3.5

用hadoop用户下载到/usr/hadoop/路径下并解压(/usr/hadoop是我的hadoop、hbase和zookeeper共同的安装路径)

2. 修改zoo.cfg

到conf目录下,执行命令:cp zoo_sample.cfg zoo.cfg并做如下修改:

dataDir=/usr/hadoop/zookeeper-3.3.5/data 

dataLogDir=/usr/hadoop/zookeeper-3.3.5/logs

#在zoo.cfg文件最后添加如下内容:(根据自己的实际情况进行修改)

server.1=192.168.0.2:2888:3888 

server.2=192.168.0.3:2888:3888 

server.3=192.168.0.4:2888:3888

server.4=192.168.0.5:2888:3888

3.添加myid

在dataDir路径下,添加myid文件,里面所对应的内容为1、2、3或者4,根据自己在zoo.cfg中指定的id,如自己的ip为192.168.0.2,则myid内容为1

4. 将相同的操作对应到其他机器上,注意myid要对应

5. 不需要做其他设置,完成了对zookeeper的设置。就是这么简单

6. 修改hbase-env.sh

不过为了取消HBase使用自己的zk管理,在hbase-env.sh,修改HBASE_MANAGES_ZK=false,其他的HBase配置不需要修改。hbase的其他设置参考HBase 完全分布式 安装配置

 

 

完成配置,下面开始启动并使用:

1. 首先在每个机器上启动zookeeper, bin/zkServer.sh start(zookeeper有自己的算法来选举leader)

2. 可以查看状态 bin/zkServer.sh status

在不同的机器上使用该命令,其中三台显示follower,一台显示leader

3. 如果已经有leader选举出,则启动hbase: bin/start-hbase.sh

4. hbase shell使用。参考HBase 完全分布式 安装配置

 

注:

可能遇到的问题:

  • hbase中服务器时间不同步造成的regionserver启动失败,刚开始我的只启动了一个regionserver,错误原因是节点机的时间和master的时间差距大于30000ms,就是30秒时无法启动服务。之前hadoop没有遇到过这个问题,所以hbase存在系统时间同步的问题,并且误差要再30s以内,手动改了时间,再启动就可以了。还有另外一个方案,就是修改hbase最大时间误差。在hbase-site.xml添加配置 hbase.master.maxclockskew属性,值180000,描述"Time difference of regionserver from master"。
posted @ 2012-07-29 01:44  hanyuanbo  阅读(1524)  评论(0编辑  收藏  举报