zookeeper是Hadoop的一个子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。zookeeper的目标是封装好复杂、易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。他也是Google的Chubby一个开源的实现,是高有效和可靠的协同工作系统,Zookeeper能够用来leader选举,配置信息维护等,在一个分布式的环境中,需要一个Master实例或存储一些配置信息,确保文件写入的一致性等。
[wyp@master Downloads]$ wget http://mirrors.cnnic.cn/
apache/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz
[wyp@master Downloads]$ tar -zxvf zookeeper-3.4.5.tar.gz
解压的文件夹名为zookeeper-3.4.5,下文将用ZOOKEEPER_HOME作为Zookeeper的安装目录。 2、修改Zookeeper的默认配置文件,如下: |
[wyp@master zookeeper-3.4.5]$ cd conf/ [wyp@master conf]$ ls -l 总用量 12 -rw-r--r--. 1 wyp wyp 535 Oct 1 2012 configuration.xsl -rw-r--r--. 1 wyp wyp 2161 Oct 1 2012 log4j.properties -rw-r--r--. 1 wyp wyp 808 Oct 1 2012 zoo_sample.cfg [wyp@master conf]$ cp zoo_sample.cfg zoo.cfg [wyp@master conf]$ vim zoo.cfg |
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/wyp/zookeeper
# the port at which the clients will connect
clientPort=2181
server.1=master:2888:3888
server.2=node1:2888:3888
server.3=node2:2888:3888
3、在刚刚zoo.cfg文件中dataDir属性指定的目录(本文中为/home/wyp/zookeeper)下创建一个 myid,在里面添加你指定的server编号,因为这台机器是master,而zoo.cfg中master编号为1(se rver.1=master:2888:3888),所以myid内容只需要为1即可。 |
[wyp@master conf]$ mkdir /home/wyp/zookeeper [wyp@master conf]$ vim /home/wyp/zookeeper/myid 1 [wyp@master conf]$ |
这样就在master机器上配置好Zookeeper,接下来只需要将master配置好的Zookeeper整个目录 打包分发到node1、node2机器中: 4、打包、分发到node1、node2: |
[wyp@master Downloads]$ tar -zcvf zookeeper.tar.gz zookeeper-3.4.5 [wyp@master Downloads]$ scp zookeeper.tar.gz node1:/home/wyp/Downloads |
5、分别登陆node1、node2,并将刚刚发送的zookeeper.tar.gz文件解压: |
[wyp@master Downloads]$ ssh node1 Last login: Sat Jan 18 16:46:50 2014 from master [wyp@node1 ~]$ cd /home/wyp/Downloads/ [wyp@node1 Downloads]$ tar -zxf zookeeper.tar.gz [wyp@node1 Downloads]$ |
并在node1的/home/wyp/zookeeper/myid文件中添加2。同理,node2的操作和上面一样,这里 就不说了。 6、分别在master、node1、node2机器上启动Zookeeper相关服务: |
[wyp@master Downloads]$ $ZOOKEEPER_HOME/bin/zkServer.sh start JMX enabled by default Using config: /home/wyp/Downloads/zookeeper-3.4.5/bin/../conf/zoo.cfg Starting zookeeper ... STARTED |
这样就安装并启动了Zookeeper分布式集群。 7、测试Zookeeper是否安装成功: |
[wyp@master Downloads]$ $ZOOKEEPER_HOME/bin/zkCli.sh -server master:2181 |
##########################################、 这里输出一大推信息,就不列出 ########################################## [zk: master:2181(CONNECTED) 0] ls / [zookeeper] [zk: master:2181(CONNECTED) 1] ls / [zookeeper] [zk: master:2181(CONNECTED) 2] create /wyp hello(/wyp为创建的文件名,内容为hello) Created /wyp [zk: master:2181(CONNECTED) 3] ls / [wyp, zookeeper] [zk: master:2181(CONNECTED) 4] get /wyp hello cZxid = 0x100000004 ctime = Sun Jan 19 15:08:58 CST 2014 mZxid = 0x100000004 mtime = Sun Jan 19 15:08:58 CST 2014 pZxid = 0x100000004 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 5 numChildren = 0 [zk: master:2181(CONNECTED) 5] set /wyp zookeeper cZxid = 0x100000004
|