前提:请确保已经好了hadoop和hbse的集成,相关安装介绍请见之前文章。
1:首先下载zookeeper,然后解压缩如下:
tar -zxvf zookeeper-3.4.3.tar.gz
2:然后进入conf目录,复制一个zoo_sample.cfg配置文件zoo.cfg,并进行如下修改:
[yf@bida ~]$ cd zookeeper-3.4.3/conf
[yf@bida conf]$ ll
total 12
-rw-r--r-- 1 yf yf 535 Feb 6 2012 configuration.xsl
-rw-r--r-- 1 yf yf 2161 Feb 6 2012 log4j.properties
-rw-r--r-- 1 yf yf 808 Feb 6 2012 zoo_sample.cfg
[yf@bida conf]$ cp zoo_sample.cfg zoo.cfg
[yf@bida conf]$ vi zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/home/yf/zookeeper-3.4.3/zookeeper-data
# the port at which the clients will connect
clientPort=2181
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=bida:2888:3888
server.2=bidb:2888:3888
然后在对应的/home/yf/zookeeper-3.4.3/zookeeper-data目录下建立myid文件,并填写id值,id值即为zoo.cfg文件中server.后的数字,如server.1=bida:2888:3888即表示bida机器中的myid号为1,server.2=bidb:2888:3888即表示bidb器中的myid号为2。
最后启动两个zookeeper,分别在228和229上的zookeeper的bin目录执行 ./zkServer.sh start
然后可以通过 ./zkServer.sh status查看
[root@bida bin]# ./zkServer.sh status
JMX enabled by default
Using config: /home/yf/zookeeper-3.4.3/bin/../conf/zoo.cfg
Mode: follower
[root@bidb bin]# echo ruok | nc 192.168.9.229 2181
imok[root@bidb bin]# ./zkServer.sh status
JMX enabled by default
Using config: /home/yf/zookeeper-3.4.3/bin/../conf/zoo.cfg
Mode: leader
echo ruok | nc 192.168.9.228 2181
echo ruok | nc 192.168.9.229 2181
最后输入jps命令查看一下部署zookeeper节点上的QuorumPeerMain进程是否存在?存在则说明OK,或者我们用浏览器查看,点击zk.dump进行检查。
[root@bidb bin]# jps
20449 Jps
8148 DataNode
6185 QuorumPeerMain
8505 TaskTracker
27667 Bootstrap
另外通过访问http://192.168.9.228:60010/本来在浏览器上可以访问到zookeeper,但我配置集群后不知道为啥不行了,但其他进程啥都正常。。。有高手知道解答下,谢谢。
如下问题可能是由于zookeeper的conf中的zoo.cfg配置文件属性data目录没有建立myid造成的。
[root@bidb bin]# echo ruok | nc 192.168.9.229 2181
-bash: echo: write error: Broken pipe
参考:
http://blog.csdn.net/rzhzhz/article/details/7448894
http://blog.chinaunix.net/uid-23916356-id-3255678.html
http://www.cnblogs.com/pcchinadreamfly/archive/2012/08/27/2658165.html
http://blog.csdn.net/hi_kevin/article/details/7089358
最后与hbase集成下,修改hbase的conf中的配置文件hbase-site.xml,增加如下内容,hbase.zookeeper.property.clientPort的端口必须是zookeeper的客户端端口,hbase.zookeeper.quorum填写的是zookeeper的主机host名,另外hbase.master我是以bidb机器作为主节点。
<property><name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value> bida,bidb</value>
</property>
<property>
<name>hbase.zookeeper.sission.timeout</name>
<value>60000</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value> 2181</value>
</property>
<property>
<name>hbase.master</name>
<value> bidb</value>
</property>
<property>
<name>hbase.regionserver.lease.period</name>
<value>60000</value>
</property>
<property>
<name>hbase.rpc.timeout</name>
<value>60000</value>
</property> 然后在修改regionservers文件,改成如下:
bida
bidb
然后保存,最后将hbase这个整个目录拷贝到bidb机器的/home/yf目录下,与bida的目录一致。
最后依次重新启动hadoop和hbase,启动成功后同感jps有如下信息:
[root@bida bin]# jps
3946 HQuorumPeer
1581 JobTracker
1070 NameNode
1324 DataNode
4068 HMaster
1466 SecondaryNameNode
4242 HRegionServer
1723 TaskTracker
4535 Jps
最终完成hadoop+hbase+zookeeper的集成。