您的位置:首页 > 运维架构 > Linux

centos下zookeeper集群搭建

2016-07-08 11:09 471 查看
[b]单机模式:[/b]

1)首先下载zookeeper压缩包,这里采用zookeeper3.4.8....

wgethttp://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz

  

2)解压缩

首先创建文件夹,这里放到/user/zookeeper/文件夹下

mkdirzookeeper1

  

mkdirzookeeper2

  

mkdirzookeeper3

创建三个文件夹用于存放三个实例,下面解压到目标文件夹,找到压缩包存放路径,执行下面命令

  

tar-zxvfzookeeper-3.4.8.tar.gz-C/usr/zookeeper/zookeeper1

  

tar-zxvfzookeeper-3.4.8.tar.gz-C/usr/zookeeper/zookeeper2

  

tar-zxvfzookeeper-3.4.8.tar.gz-C/usr/zookeeper/zookeeper3

3)运行单价环境

先来整下zookeeper1这个实例,首先

  

cdzookeeper1/

  利用ll命令,显示所有文件详情,

drwxr-xr-x.2100010004096Mar1717:27bin -rw-rw-r--.11000100083235Feb611:46build.xml -rw-rw-r--.11000100088625Feb611:46CHANGES.txt drwxr-xr-x.2100010004096Mar1717:21conf drwxr-xr-x.10100010004096Feb611:46contrib drwxr-xr-x.2100010004096Feb611:50dist-maven drwxr-xr-x.6100010004096Feb611:49docs -rw-rw-r--.1100010001953Feb611:46ivysettings.xml -rw-rw-r--.1100010003498Feb611:46ivy.xml drwxr-xr-x.4100010004096Feb611:49lib -rw-rw-r--.11000100011938Feb611:46LICENSE.txt -rw-rw-r--.110001000171Feb611:46NOTICE.txt -rw-rw-r--.1100010001770Feb611:46README_packaging.txt -rw-rw-r--.1100010001585Feb611:46README.txt drwxr-xr-x.5100010004096Feb611:46recipes drwxr-xr-x.8100010004096Feb611:49src -rw-rw-r--.1100010001360961Feb611:46zookeeper-3.4.8.jar -rw-rw-r--.110001000819Feb611:50zookeeper-3.4.8.jar.asc -rw-rw-r--.11000100033Feb611:46zookeeper-3.4.8.jar.md5 -rw-rw-r--.11000100041Feb611:46zookeeper-3.4.8.jar.sha1

 cp下配置文件,

mvconf/zoo_sample.cfgconf/zoo.cfg

  启动zk,

./bin/zdServer.shstart

4)使用java客户端连接ZooKeeper

./bin/zkCli.sh-server127.0.0.1:2181

  然后就可以使用各种命令了,跟文件操作命令很类似,输入
help
可以看到所有命令。

5)关闭

./bin/zdServer.shstop

  

分布式模式(Replicatedmode)

ZooKeeper集群一般被称为ZooKeeperensemble,或者quorum.

因为我们这里只有一台机器,通过不同端口号,做成伪集群的方式,如果你机器比较多,可以在每个机器上安装一个zk,配置方式是类似。

所谓“伪分布式集群”就是在,在一台PC中,启动多个ZooKeeper的实例。“完全分布式集群”是每台PC,启动一个ZooKeeper实例。

ZooKeeper不存在明显的master/slave关系,各个节点都是服务器,leader挂了,会立马从follower中选举一个出来作为leader.

由于没有主从关系,也不用配置SSH无密码登录了,各个zk服务器是自己启动的,互相之间通过TCP端口来交换数据



将zookeeper2,zookeeper3的配置文件改下,因为zookeeper1在我们做单机时候,已经修改过,在zookeeper2,zookeeper3conf文件夹下,执行

mvzoo_sample.cfgzoo.cfg

  

创建环境目录

切换到var/zookeeper路径下,新建三个文件夹zookeeper1,zookeeper2,zookeeper3....用于存放pid

mkdir/var/zookeeper/zookeeper1 mkdir/var/zookeeper/zookeeper2 mkdir/var/zookeeper/zookeeper3

分别在  zookeeper1,zookeeper2,zookeeper3,新建三个文件myid

~echo"1">/var/zookeeper/zookeeper1/myid ~echo"2">/var/zookeeper/zookeeper2/myid ~echo"3">/var/zookeeper/zookeeper3/myid

  注意myid只能为数字,因为我试验了下,包含英文的话zk启动不起来,抛出异常

分别修改配置文件
修改:dataDir,clientPort
增加:集群的实例,server.X,”X”表示每个目录中的myid的值


vi/usr/zookeeper/zookeeper1/conf/zoo.cfg

    



#Thenumberofmillisecondsofeachtick
tickTime=2000
#Thenumberofticksthattheinitial
#synchronizationphasecantake
initLimit=10
#Thenumberofticksthatcanpassbetween
#sendingarequestandgettinganacknowledgement
syncLimit=5
#thedirectorywherethesnapshotisstored.
#donotuse/tmpforstorage,/tmphereisjust
#examplesakes.
dataDir=/var/zookeeper/zookeeper1
#theportatwhichtheclientswillconnect
clientPort=2181
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
#themaximumnumberofclientconnections.
#increasethisifyouneedtohandlemoreclients
#maxClientCnxns=60
#
#Besuretoreadthemaintenancesectionofthe
#administratorguidebeforeturningonautopurge.
#
#http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance#
#ThenumberofsnapshotstoretainindataDir
#autopurge.snapRetainCount=3
#Purgetaskintervalinhours
#Setto"0"todisableautopurgefeature
#autopurge.purgeInterval=1


以下只贴出不同部分,其他和zk1相同

vi/usr/zookeeper/zookeeper2/conf/zoo.cfg


 

dataDir=/var/zookeeper/zookeeper2

 

clientPort=2182


vi/user/zookeeper/zookeeper3/conf/zoo.cfg


  

dataDir=/var/zookeeper/zookeeper3

 

clientPort=2182


[b]启动每台机器[/b]


/usr/zookeeper/zookeeper1/bin/zkServer.shstart
/usr/zookeeper/zookeeper2/bin/zkServer.shstart
/usr/zookeeper/zookeeper3/bin/zkServer.shstart


  

查看启动状态





                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: