环境
CentOS 7
hadoop 2.7.3 CentOS 7.0安装flume
zookeeper 3.4.11
下载zookeeper
下载链接:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/
百度云下载链接:https://pan.baidu.com/s/1nuDb1R7 密码:ekj2
配置
上传的到集群机器上
本例中我放在了 /data/software 目录下
新建目录 解压
mkdir -p /opt/zookeeper/data
mkdir -p /opt/zookeeper/log
解压zookeeper
tar -zxvf zookeeper-3.4.11.tar.gz -C /opt/zookeeper/
新建myid文件并添加内容
cd /opt/zookeeper/data
# master节点
echo 1 >> myid
# slave1节点
echo 2 >> myid
# slave2节点
echo 3 >> myid
说明: 在master节点中的myid添加1,在slave1中添加2,在slave2中添加3
修改zookeeper的配置文件
cd /opt/zookeeper/zookeeper-3.4.11/conf/
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
注释原来的dataDir,添加新创建的dataDir和dataLogDir目录
dataDir=/opt/zookeeper/data
dataLogDir=/opt/zookeeper/log
同时添加以下代码 (格式:server.id=host:port:port)
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
说明:2888和3888都是zookeeper的默认端口号,也可以自己设置。第一个端口号是从服务器(follower)连接主服务器(leader)的端口号,第二个端口号是进行leadership选举的端口号
启动
分别启动zookeeper
cd /opt/zookeeper/zookeeper-3.4.11/bin
./zkServer.sh start
# 输出
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/zookeeper-3.4.11/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
查看进程
jps
# 输出
39842 ResourceManager
52354 Jps
52325 QuorumPeerMain
39545 SecondaryNameNode
39213 NameNode
# 输出
4593 QuorumPeerMain
4618 Jps
45003 DataNode
119466 NodeManage
# 输出
45738 DataNode
5339 QuorumPeerMain
5371 Jps
120396 NodeManager
启动成功
测试
查看集群节点状态
./zkServer.sh status
# 输出
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/zookeeper-3.4.11/bin/../conf/zoo.cfg
Mode: follower
# 输出
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/zookeeper-3.4.11/bin/../conf/zoo.cfg
Mode: leader
# 输出
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/zookeeper-3.4.11/bin/../conf/zoo.cfg
Mode: follower
通过 ./zkServer.sh status
命令可以看到哪个节点是leader,哪些节点是follower
客户端访问
[root@master bin]# ./zkCli.sh -server slave1:2181
Connecting to slave1:2181
2017-12-04 10:33:29,897 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.11-37e277162d567b55a07d1755f0b31c32e93c01a0, built on 11/01/2017 18:06 GMT
2017-12-04 10:33:29,901 [myid:] - INFO [main:Environment@100] - Client environment:host.name=master
2017-12-04 10:33:29,901 [myid:] - INFO [main:Environment@100] - Client environment:java.version=1.8.0_60
2017-12-04 10:33:29,903 [myid:] - INFO [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2017-12-04 10:33:29,903 [myid:] - INFO [main:Environment@100] - Client environment:java.home=/opt/java/jdk1.8.0_60/jre
2017-12-04 10:33:29,903 [myid:] - INFO [main:Environment@100] - Client environment:java.class.path=/opt/zookeeper/zookeeper-3.4.11/bin/../build/classes:/opt/zookeeper/zookeeper-3.4.11/bin/../build/lib/*.jar:/opt/zookeeper/zookeeper-3.4.11/bin/../lib/slf4j-log4j12-1.6.1.jar:/opt/zookeeper/zookeeper-3.4.11/bin/../lib/slf4j-api-1.6.1.jar:/opt/zookeeper/zookeeper-3.4.11/bin/../lib/netty-3.10.5.Final.jar:/opt/zookeeper/zookeeper-3.4.11/bin/../lib/log4j-1.2.16.jar:/opt/zookeeper/zookeeper-3.4.11/bin/../lib/jline-0.9.94.jar:/opt/zookeeper/zookeeper-3.4.11/bin/../lib/audience-annotations-0.5.0.jar:/opt/zookeeper/zookeeper-3.4.11/bin/../zookeeper-3.4.11.jar:/opt/zookeeper/zookeeper-3.4.11/bin/../src/java/lib/*.jar:/opt/zookeeper/zookeeper-3.4.11/bin/../conf:$:CLASSPATH:/opt/java/jdk1.8.0_60/lib/
2017-12-04 10:33:29,907 [myid:] - INFO [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2017-12-04 10:33:29,907 [myid:] - INFO [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2017-12-04 10:33:29,908 [myid:] - INFO [main:Environment@100] - Client environment:java.compiler=<NA>
2017-12-04 10:33:29,908 [myid:] - INFO [main:Environment@100] - Client environment:os.name=Linux
2017-12-04 10:33:29,908 [myid:] - INFO [main:Environment@100] - Client environment:os.arch=amd64
2017-12-04 10:33:29,908 [myid:] - INFO [main:Environment@100] - Client environment:os.version=3.10.0-327.el7.x86_64
2017-12-04 10:33:29,908 [myid:] - INFO [main:Environment@100] - Client environment:user.name=root
2017-12-04 10:33:29,908 [myid:] - INFO [main:Environment@100] - Client environment:user.home=/root
2017-12-04 10:33:29,908 [myid:] - INFO [main:Environment@100] - Client environment:user.dir=/opt/zookeeper/zookeeper-3.4.11/bin
2017-12-04 10:33:29,910 [myid:] - INFO [main:ZooKeeper@441] - Initiating client connection, connectString=slave1:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@67424e82
2017-12-04 10:33:29,951 [myid:] - INFO [main-SendThread(slave1:2181):ClientCnxn$SendThread@1035] - Opening socket connection to server slave1/192.168.122.129:2181. Will not attempt to authenticate using SASL (unknown error)
Welcome to ZooKeeper!
JLine support is enabled
2017-12-04 10:33:30,158 [myid:] - INFO [main-SendThread(slave1:2181):ClientCnxn$SendThread@877] - Socket connection established to slave1/192.168.122.129:2181, initiating session
2017-12-04 10:33:30,212 [myid:] - INFO [main-SendThread(slave1:2181):ClientCnxn$SendThread@1302] - Session establishment complete on server slave1/192.168.122.129:2181, sessionid = 0x2000fe825380000, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: slave1:2181(CONNECTED) 0]
我们已经成功登陆到zookeeper的客户端,测试成功
参考: