Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3011462
  • 博文数量: 167
  • 博客积分: 613
  • 博客等级: 中士
  • 技术积分: 5473
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-13 21:35
个人简介

人, 既无虎狼之爪牙,亦无狮象之力量,却能擒狼缚虎,驯狮猎象,无他,唯智慧耳。

文章分类
文章存档

2015年(19)

2014年(70)

2013年(54)

2012年(14)

2011年(10)

分类: HADOOP

2013-10-22 15:11:32

     部署完成Hadoop/Hbase集群之后,结果发现运行时不断提醒zookeeper的连接错误:Session 0x0 for server。网上大部分的资料说问题出在DNS的解析上,需要去修改/etc/hosts文件,但是之前部署分布式的时候这个文件就已经设置好了,所以问题应该不是在这里。于是考虑这个奇怪的问题会不会是因为启动Hbase自带zookeeper的问题呢?虽然对内部的原理并不太清楚,但是还是决定先安装一个独立的zookeeper来试一试。先说下自己的平台:
——hadoop-1.1.2
——hbase-0.90.0
——zookeeper-3.4.5
——jdk-1.6
     好了,现在开始zookeeper-3.4.5的安装吧!


一、官方网站下载zookeeper-3.4.5:二、将下载得到的zookeeper-3.4.5.tar.gz放到指定的目录中,自己统一放在了/home/hadoop/platform/下,tar解压缩即可
三、设置环境变量:
     为了方便运行zkServer.sh脚本,我们将zookeeper的bin路径加入到/etc/profile中,作为一个全局变量进行输出到PATH中,记得修改完成之后运行source /etc/profile使修改生效
     ZOOKEEPER_HOME=/home/hadoop/platform/zookeeper-3.4.5
     export ZOOKEEPER_HOME
     export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf
     然后利用scp命令将修改复制到各个节点


四、建立zookeeper配置文件(可以先在一个节点上配置,后期直接复制到其他节点即可)
     进入到zookeeper的conf/中,将zoo_sample.cfg拷贝成zoo.cfg:

点击(此处)折叠或打开

  1. tickTime=2000
  2. # The number of ticks that the initial
  3. # synchronization phase can take
  4. initLimit=10
  5. # The number of ticks that can pass between
  6. # sending a request and getting an acknowledgement
  7. syncLimit=5
  8. # the directory where the snapshot is stored.
  9. dataDir=/home/hadoop/platform/zookeeper-data
  10. # the port at which the clients will connect
  11. clientPort=2181
  12.  
  13. #下面是参与的4个节点
  14. server.1=master:2888:3888
  15. server.2=node1:2888:3888
  16. server.3=node2:2888:3888
      端口2181,设置dataDir为一个指定目录存放zookeeper的协调数据,最后添加集群中的节点。接下来需要根据server.X的号码在相应的节点上的dataDir下建立myid文件,输入自身的“X”作为内容即可,比如master节点上的myid只输入1即可。
五、复制zookeeper-3.4.5到其他各节点
     这里使用scp -r zookeeper-3.4.5/ hadoop@node1:实现,注意每个节点的dataDir下的myid文件要修改成自身的Server-X号码
六、运行zkServer.sh 
      在所有节点上分别运行zkServer.sh start命令:

     这里需要注意第一个节点启动zookeeper时由于集群的其他节点未启动zookeeper,因此使用zkServer.sh status命令查看当前状态时会提示错误,如上图白色区域;但是随着后续节点的zookeeper的陆续启动,使用status查看状态时会显示当前节点的状态,本次master作为了leader。
     配置好重新运行tpkickoff.sh,终于没有像之前报zookeeper的错误了:




阅读(31761) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~