styxmx 发表于 2015-9-6 09:40:16

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"。
页: [1]
查看完整版本: HBase ZooKeeper Distributed 完全分布式安装