zookeeper分布式安装

| 分类 hadoop  | 标签 zookeeper 

zookeeper分布式安装

分布式安装

修改配置文件

#修改配置文件名
mv zoo_sample.cfg zoo.cfg
#创建数据文件夹
[zengjr@hadoop-zengjr zookeeper]$ mkdir data
[zengjr@hadoop-zengjr zookeeper]$ cd data/
[zengjr@hadoop-zengjr data]$ pwd
/opt/modules/zookeeper/data

#修改配置
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/opt/modules/zookeeper/data
# the port at which the clients will connect

initLimit=5
syncLimit=2
server.1=192.168.29.128:2888:3888 #2888是leader与follower通信端口,3888是选举端口
server.2=192.168.29.129:2888:3888
server.3=192.168.29.130:2888:3888

配置文件说明:

tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。

dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。

clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。

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实例通信端口不能一样,所以要给他们分配不同的端口

集群模式下配置一个文件myid,这个文件在dataDir目录下,这个文件里就是一个数据A的值,zookeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是那个server

在各机器安装的数据平台目录下创建myid文件

命令 touch data/myid

编辑:vi data/myid
myid只要是标识这台机器是那个服务器

内容:

192.168.29.128机器myid内容是:1
192.168.29.129机器myid内容是:2
192.168.29.130机器myid内容是:3

发送文件到其它机器

scp -r zookeeper/ zengjr@hadoop-slave01.xiaoqee.com:/opt/modules/
scp -r zookeeper/ zengjr@hadoop-slave02.xiaoqee.com:/opt/modules/

修改slave01,slave02中的myid值

启动zookeeper

[zengjr@hadoop-zengjr bin]$ ./zkServer.sh start
JMX enabled by default
Using config: /opt/modules/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[zengjr@hadoop-zengjr bin]$ jps
1991 NameNode
4100 Jps
4075 QuorumPeerMain
2449 NodeManager
2093 DataNode
[zengjr@hadoop-zengjr bin]$ ./zkServer.sh status
JMX enabled by default
Using config: /opt/modules/zookeeper/bin/../conf/zoo.cfg
Mode: follower

验证zookeeper

[zengjr@hadoop-slave01 bin]$ ./zkServer.sh status
JMX enabled by default
Using config: /opt/modules/zookeeper/bin/../conf/zoo.cfg
Mode: leader

客户端连接zookeeper

[zengjr@hadoop-zengjr bin]$ ./zkCli.sh -server hadoop-slave02.xiaoqee.com:2181
Connecting to hadoop-slave02.xiaoqee.com:2181
2014-12-31 15:55:34,159 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT
2014-12-31 15:55:34,165 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=hadoop-zengjr.xiaoqee.com
2014-12-31 15:55:34,165 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.7.0_67
2014-12-31 15:55:34,170 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2014-12-31 15:55:34,170 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/opt/modules/jdk1.7.0_67/jre
2014-12-31 15:55:34,170 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/opt/modules/zookeeper/bin/../build/classes:/opt/modules/zookeeper/bin/../build/lib/*.jar:/opt/modules/zookeeper/bin/../lib/slf4j-log4j12-1.6.1.jar:/opt/modules/zookeeper/bin/../lib/slf4j-api-1.6.1.jar:/opt/modules/zookeeper/bin/../lib/netty-3.7.0.Final.jar:/opt/modules/zookeeper/bin/../lib/log4j-1.2.16.jar:/opt/modules/zookeeper/bin/../lib/jline-0.9.94.jar:/opt/modules/zookeeper/bin/../zookeeper-3.4.6.jar:/opt/modules/zookeeper/bin/../src/java/lib/*.jar:/opt/modules/zookeeper/bin/../conf:
2014-12-31 15:55:34,170 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2014-12-31 15:55:34,170 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2014-12-31 15:55:34,171 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
2014-12-31 15:55:34,171 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
2014-12-31 15:55:34,171 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=amd64
2014-12-31 15:55:34,171 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=2.6.32-358.el6.x86_64
2014-12-31 15:55:34,171 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=zengjr
2014-12-31 15:55:34,171 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/home/zengjr
2014-12-31 15:55:34,172 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/opt/modules/zookeeper/bin
2014-12-31 15:55:34,173 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=hadoop-slave02.xiaoqee.com:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@5b4c1313
Welcome to ZooKeeper!
2014-12-31 15:55:34,207 [myid:] - INFO  [main-SendThread(hadoop-slave02.xiaoqee.com:2181):ClientCnxn$SendThread@975] - Opening socket connection to server hadoop-slave02.xiaoqee.com/192.168.29.130:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2014-12-31 15:55:34,221 [myid:] - INFO  [main-SendThread(hadoop-slave02.xiaoqee.com:2181):ClientCnxn$SendThread@852] - Socket connection established to hadoop-slave02.xiaoqee.com/192.168.29.130:2181, initiating session
[zk: hadoop-slave02.xiaoqee.com:2181(CONNECTING) 0] 2014-12-31 15:55:34,324 [myid:] - INFO  [main-SendThread(hadoop-slave02.xiaoqee.com:2181):ClientCnxn$SendThread@1235] - Session establishment complete on server hadoop-slave02.xiaoqee.com/192.168.29.130:2181, sessionid = 0x34aa21d41310000, negotiated timeout = 30000

WATCHER::

zkCli.sh 常用命令

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

完整的配置:

# 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=/opt/modules/zookeeper/data
##############################################

server.1=hadoop-zengjr.xiaoqee.com:2888:3888
server.2=hadoop-slave01.xiaoqee.com:2888:3888
server.3=hadoop-slave02.xiaoqee.com:2888:3888

##############################################
# 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

上一篇     下一篇