Fork me on GitHub

Zookeeper集群环境搭建


测试环境

1
2
3
4
5
6
7
8
9
10
测试环境:
Ubuntu 14.04 LTS x64
ZooKeeper:zookeeper-3.4.6.tar.gz

hostname IP role
spark-master: 192.168.108.20 master & worker
spark-slave1: 192.168.108.21 worker
spark-slave2: 192.168.108.22 worker

!默认情况全部操作在root下进行

下载解压ZooKeeper

地址:ZooKeeper官方下载


#配置ssh免密码登录

请参考:Tachyon集群部署


修改目录权限

1
sudo chmod -R 775 zookeeper-3.4.6/

创建目录结构

进入ZooKeeper目录

  • 创建数据目录
1
mkdir data
  • 创建日志目录
1
mkdir logs

修改zoo.cfg配置文件

1
2
3
4
5
6
7
8
9
10
11
cp ./conf/zoo_sample.cfg ./conf/zoo.cfg
vim ./conf/zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/jabo/software/zookeeper-3.4.6/data #刚才创建的data目录
clientPort=2181
server.1=spark-master:2888:3888
server.2=spark-slave1:2888:3888
server.3=spark-slave2:2888:3888

ZooKeeper目录分发

将ZooKeeper目录分别复制到其他主机


ZooKeeper环境变量

1
2
3
4
5
6
7
8
9
10
11
12
/**
* 分别配置每台主机的环境变量
*/
sudo vim /etc/profile

//添加如下信息
export ZOO_HOME=/home/jabo/software/zookeeper-3.4.6
export ZOO_LOG_DIR=$ZOO_HOME/logs
export PATH=$ZOO_HOME/bin:$PATH

//使配置生效
source /etc/profile

配置节点ID

1
2
3
4
5
6
/**
* master切换至root下进行
*/
echo 1 >/home/jabo/software/zookeeper-3.4.6/data/myid
ssh spark-slave1 "echo 2 >/home/jabo/software/zookeeper-3.4.6/data/myid"
ssh spark-slave2 "echo 3 >/home/jabo/software/zookeeper-3.4.6/data/myid"

启动和关闭

1
2
3
4
5
6
7
/**
* 启动(分别对每台主机进行启动)
*/
zkServer.sh start

//关闭
zkServer.sh stop

查看节点

1
2
3
4
5
6
7
8
9
10
11
root@spark-master:jps
20093 Jps
17164 QuorumPeerMain

root@spark-slave1: jps
18666 QuorumPeerMain
20352 Jps

root@spark-slave2:jps
4819 QuorumPeerMain
94793 Jps

查看状态

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
zkServer.sh status

root@spark-master:/home/jabo/software/zookeeper-3.4.6# ./bin/zkServer.sh status
JMX enabled by default
Using config: /home/jabo/software/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower

root@spark-slave1:/home/jabo/software/zookeeper-3.4.6# bin/zkServer.sh status
JMX enabled by default
Using config: /home/jabo/software/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: leader

root@spark-slave2:/home/jabo/software/zookeeper-3.4.6# bin/zkServer.sh status
JMX enabled by default
Using config: /home/jabo/software/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower

客户端连接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//可以连接任一节点至集群
./bin/zkCli.sh -server spark-slave1:2181

Connecting to spark-slave1:2181
2016-01-15 14:20:55,622 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT
2016-01-15 14:20:55,640 [myid:] - INFO [main:Environment@100] - Client environment:host.name=spark-slave2
2016-01-15 14:20:55,640 [myid:] - INFO [main:Environment@100] - Client environment:java.version=1.7.0_79
2016-01-15 14:20:55,644 [myid:] - INFO [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2016-01-15 14:20:55,644 [myid:] - INFO [main:Environment@100] - Client environment:java.home=/usr/lib/jvm/java/jre
2016-01-15 14:20:55,645 [myid:] - INFO [main:Environment@100] - Client environment:java.class.path=/home/jabo/software/zookeeper-3.4.6/bin/../build/classes:/home/jabo/software/zookeeper-3.4.6/bin/../build/lib/*.jar:/home/jabo/software/zookeeper-3.4.6/bin/../lib/slf4j-log4j12-1.6.1.jar:/home/jabo/software/zookeeper-3.4.6/bin/../lib/slf4j-api-1.6.1.jar:/home/jabo/software/zookeeper-3.4.6/bin/../lib/netty-3.7.0.Final.jar:/home/jabo/software/zookeeper-3.4.6/bin/../lib/log4j-1.2.16.jar:/home/jabo/software/zookeeper-3.4.6/bin/../lib/jline-0.9.94.jar:/home/jabo/software/zookeeper-3.4.6/bin/../zookeeper-3.4.6.jar:/home/jabo/software/zookeeper-3.4.6/bin/../src/java/lib/*.jar:/home/jabo/software/zookeeper-3.4.6/bin/../conf:.:/usr/lib/jvm/java/lib:/usr/lib/jvm/java/jre/lib
2016-01-15 14:20:55,645 [myid:] - INFO [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2016-01-15 14:20:55,651 [myid:] - INFO [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2016-01-15 14:20:55,651 [myid:] - INFO [main:Environment@100] - Client environment:java.compiler=<NA>
2016-01-15 14:20:55,651 [myid:] - INFO [main:Environment@100] - Client environment:os.name=Linux
2016-01-15 14:20:55,651 [myid:] - INFO [main:Environment@100] - Client environment:os.arch=amd64
2016-01-15 14:20:55,651 [myid:] - INFO [main:Environment@100] - Client environment:os.version=3.13.0-32-generic
2016-01-15 14:20:55,651 [myid:] - INFO [main:Environment@100] - Client environment:user.name=root
2016-01-15 14:20:55,652 [myid:] - INFO [main:Environment@100] - Client environment:user.home=/root
2016-01-15 14:20:55,652 [myid:] - INFO [main:Environment@100] - Client environment:user.dir=/home/jabo/software/zookeeper-3.4.6
2016-01-15 14:20:55,658 [myid:] - INFO [main:ZooKeeper@438] - Initiating client connection, connectString=spark-slave1:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@4b4bc1e
Welcome to ZooKeeper!
2016-01-15 14:20:55,722 [myid:] - INFO [main-SendThread(spark-slave1:2181):ClientCnxn$SendThread@975] - Opening socket connection to server spark-slave1/192.168.108.21:2181. Will not attempt to authenticate using SASL (unknown error)
2016-01-15 14:20:55,736 [myid:] - INFO [main-SendThread(spark-slave1:2181):ClientCnxn$SendThread@852] - Socket connection established to spark-slave1/192.168.108.21:2181, initiating session
JLine support is enabled
2016-01-15 14:20:55,767 [myid:] - INFO [main-SendThread(spark-slave1:2181):ClientCnxn$SendThread@1235] - Session establishment complete on server spark-slave1/192.168.108.21:2181, sessionid = 0x25243ec79bf0001, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: spark-slave1:2181(CONNECTED) 0]

转载请注明出处


Thank you for your support.