linux安装zookeeper

一.centos下安装ZooKeeper

1.首先下载zookeeper,我下载的是zookeeper-3.4.6版本的,可以在apache官网上下载,方法可见百度经验,地 址:http://jingyan.baidu.com/article/6181c3e094266d152ef153da.html

2.下载好zookeeper之后,我是放在linux上面/home目录下面,然后解压zookeeper

tar -zxvf zookeeper-3.4.6.tar.gz

3.到zookeeper目录下面

cd zookeeper-3.4.6

4.复制conf目录下的zoo_sample.cfg,并命名为zoo.cfg ,

cd /home/zookeeper-3.4.6/conf

mv zoo_sample.cfg zoo.cfg

5.修改zoo.cfg内容, 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.
<span style="color:#ff0000;">dataDir=/tmp/zookeeper/data
dataLogDir=/tmp/zookeeper/logs</span>
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# 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
#2888,3888 are election port
server.1=192.168.1.127:2888:3888
server.2=192.168.1.151:2888:3888
server.3=192.168.1.199:2888:3888

其中,2888端口号是服务之间通信的端口,而3888是;zookeeper与其他应用程序通信的端口.而zookeeper是在hosts中已映射了本机的IP.

initLimit:这个配置项是用来配置Zookeeper接受客户端(这里所说的客户端不是用户连接Zookeeper服务器的客户端,而是Zookeeper服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒。
syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒。
server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

6.创建dataDir参数指定的目录(这里指的是“ /tmp/zookeeper/data”),并在目录下创建文件,命名为“myid”。

7.编辑“myid”文件,并在对应的IP的机器上输入对应的编号。如在本机上,“myid”文件内容就是1。若还有其他服务器,比如地址为192.168.1.151,则在zoo.cfg文件中还需加入server.2=192.168.1.151:2888:3888。那么myid文件在192.168.1.151服务器上的内容就是2。至此,如果是多服务器配置,就需要将zookeeper-3.4.6目录拷贝到其他服务器,然后按照上述的方法修改myid。

8.在/etc/profile文件中设置PATH
修改profile文件:
sudo vi /etc/profile

export ZOOKEEPER_HOME=/home/zookeeper-3.4.6
export PATH=$ZOOKEEPER_HOME/bin:$PATH
export PATH
至此,安装完毕,楼主在192.168.1.127,192.168.1.151,192.168.1.199三台机器都配置了zookeeper。

8.我们现在就开始启动zookeeper服务端,来看看效果

 命令: /home/zookeeper-3.4.6/bin/zkServer.sh start

[root@SIMON bin]# /home/zookeeper-3.4.6/bin/zkServer.sh start
JMX enabled by default
Using config: /home/zookeeper-3.4.6/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
说明zookeeper启动成功,我们把3台机器都启动起来

9.用命令jps查看进程

[root@localhost conf]# jps
1850 ZooKeeperMain
2211 Jps
30652 QuorumPeerMain
看到以上信息,说明启动正常

10.然后我们用命令/home/zookeeper-3.4.6/bin/zkServer.sh status查看当前状态

[root@SIMON bin]# /home/zookeeper-3.4.6/bin/zkServer.sh status
JMX enabled by default
Using config: /home/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower

说明该机器是follower,但是3台中肯定有一台是leader,我的机器是151,每个人可能都不一样,如果151机器挂了,它会重新选举一个leader出来,时间为200毫秒

[root@localhost zookeeper-3.4.6]# /home/zookeeper-3.4.6/bin/zkServer.sh status
JMX enabled by default
Using config: /home/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: leader
11.停止zookeeper进程:/home/zookeeper-3.4.6/bin/zkServer.sh  stop

至此,zookeeper集群已经完毕。

12.然后我们在linux上启动一个客户端来连接试试看,命令: /home/zookeeper-3.4.6/bin/zkCli.sh

[root@localhost zookeeper-3.4.6]# /home/zookeeper-3.4.6/bin/zkCli.sh 
Connecting to localhost:2181
2015-12-04 16:43:33,655 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT
2015-12-04 16:43:33,676 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=localhost.localdomain
2015-12-04 16:43:33,678 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.7.0_71
2015-12-04 16:43:33,691 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2015-12-04 16:43:33,692 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71.x86_64/jre
2015-12-04 16:43:33,694 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/home/zookeeper-3.4.6/bin/../build/classes:/home/zookeeper-3.4.6/bin/../build/lib/*.jar:/home/zookeeper-3.4.6/bin/../lib/slf4j-log4j12-1.6.1.jar:/home/zookeeper-3.4.6/bin/../lib/slf4j-api-1.6.1.jar:/home/zookeeper-3.4.6/bin/../lib/netty-3.7.0.Final.jar:/home/zookeeper-3.4.6/bin/../lib/log4j-1.2.16.jar:/home/zookeeper-3.4.6/bin/../lib/jline-0.9.94.jar:/home/zookeeper-3.4.6/bin/../zookeeper-3.4.6.jar:/home/zookeeper-3.4.6/bin/../src/java/lib/*.jar:/home/zookeeper-3.4.6/bin/../conf:
2015-12-04 16:43:33,695 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2015-12-04 16:43:33,697 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2015-12-04 16:43:33,698 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
2015-12-04 16:43:33,699 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
2015-12-04 16:43:33,701 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=amd64
2015-12-04 16:43:33,701 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=2.6.18-371.el5
2015-12-04 16:43:33,702 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root
2015-12-04 16:43:33,703 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root
2015-12-04 16:43:33,704 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/home/zookeeper-3.4.6
2015-12-04 16:43:33,709 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@636aa365
2015-12-04 16:43:33,824 [myid:] - INFO  [main-SendThread(localhost.localdomain:2181):ClientCnxn$SendThread@975] - Opening socket connection to server localhost.localdomain/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
Welcome to ZooKeeper!
2015-12-04 16:43:33,861 [myid:] - INFO  [main-SendThread(localhost.localdomain:2181):ClientCnxn$SendThread@852] - Socket connection established to localhost.localdomain/127.0.0.1:2181, initiating session
2015-12-04 16:43:33,968 [myid:] - INFO  [main-SendThread(localhost.localdomain:2181):ClientCnxn$SendThread@1235] - Session establishment complete on server localhost.localdomain/127.0.0.1:2181, sessionid = 0x2516683a1fb0004, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
JLine support is enabled

在命令行输入help,可以看到zkCli.sh的一些命令

[zk: localhost:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
	connect host:port
	get path [watch]
	ls path [watch]
	set path data [version]
	rmr path
	delquota [-n|-b] path
	quit 
	printwatches on|off
	create [-s] [-e] path data acl
	stat path [watch]
	close 
	ls2 path [watch]
	history 
	listquota path
	setAcl path acl
	getAcl path
	sync path
	redo cmdno
	addauth scheme auth
	delete path [version]
	setquota -n|-b val path

具体命令有什么用,可自行百度,或者等楼主过几天再出个教程。

输入 ls  /  可以查看当前 / 目录下面的节点,zookeeper是采用树状来保存数据的。

[zk: localhost:2181(CONNECTED) 1] ls /
[assign, new, test, zookeeper, tasks, zk, workers]
这是楼主创建的节点。

还有一些命令就不再赘述,如果想在windows下面通过java来操作zookeeper,如读取zookeeper数据,写入数据等,请看

 windows下java操作zookeeper这篇文章。




















12.然后我们在linux上启动一个客户端来连接试试看,命令: /home/zookeeper-3.4.6/bin/zkCli.sh
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值