zookeeper集群搭建
版本:3.5.6
-
解压软件包
tar -zxvf apache-zookeeper-3.5.6-bin.tar.gz -C /opt/softwares -
创建软链接
ln -sf /opt/softwares/apache-zookeeper-3.5.6-bin /opt/links/zookeeper -
配置环境变量(vim ~/.bashrc)
在末尾加入以下内容:ZOOKEEPER_CONF###
export ZOOKEEPER_HOME=/opt/links/zookeeper
export PATH=ZOOKEEPER_HOME/bin -
生效配置文件
source ~/.bashrc -
验证是否安装成功
输入zk命令,按两次tab键,看是否有相关内容提示 -
配置zookeeper环境
(1) 复制ZOOKEEPER_HOME/conf/zoo.cfg)修改第12行:dataDir=/home/yu/bigdata/zookeeper/data 注意:(该目录需要提前创建,在搭建分布式ZK集群的时候,会向该目录中写入一些数据) 新增一行:dataLogDir=/home/yu/bigdata/zookeeper/data/log 2) 编辑$ZOOKEEPER_HOME/conf/log4j.properties 修改第24行:zookeeper.log.dir=/opt/links/zookeeper/logs 注意:此为运行时日志存放的目录 3) 编辑$ZOOKEEPER_HOME/bin/zkServer.sh(此文件中修改的内容类似于log4j中的,用于存放系统日志文件目录) 在142行上面一行添加一行:ZOO_LOG_DIR=/opt/links/zookeeper/logs 4) 编辑$ZOOKEEPER_HOME/bin/zkCli.sh(此文件中修改的内容类似于log4j中的,用于存放系统日志文件目录) 在41行上面一行添加一行:ZOO_LOG_DIR=/opt/links/zookeeper/logs
(3) 伪分布
master:
zk1目录:安装zk,zoo.cfg,dataLog=~/zk1/data/myid 100
server.100=bt0:2888:3888
clientPort=2181zk2目录:安装zk,zoo.cfg,dataLog=~/zk2/data/myid 200 server.200=bt0:2888:3888 clientPort=2182 zk3目录:安装zk,zoo.cfg,dataLog=~/zk3/data/myid 300 server.300=bt0:2888:3888 clientPort=2183 zkCli.sh -server bt0:2181,bt0:2182,bt0:2183
(4) 全分布
1) 配置与单机几乎一致,除了以下两个步骤:
a. 在zoo.cfg文件中在最后一块加入如下内容:
server.1=hadoop02:2888:3888
server.2=hadoop03:2888:3888
server.3=hadoop04:2888:3888
端口说明:2888是各个ZK节点之间的通信端口;3888是选举Leader的端口。数字说明:该数字是本机的ZK的标识。该数字需要写入到zoo.cfg中定义的dataDir目录下的myid文件中。 2) 将服务器编号写入到zoo.cfg中定义的dataDir目录下的myid文件 echo "1" > ~/bigdata/zookeeper/data/myid echo "2" > ~/bigdata/zookeeper/data/myid echo "3" > ~/bigdata/zookeeper/data/myid 3) 将配置好的zookeeper包scp发送到其他两个机器 4) 创建软链接 5) 配置环境变量 6) 生效环境变量文件 source ~/.bashrc
-
启动/停止zookeeper服务
zkServer.sh start/stop -
查看zookeeper状态
zkServer.sh status
检查ZK服务器有没有启动成功的方法(三种):
a.上面第10步的操作;
b.使用jps命令查看,如果有QuorumPeerMain进程说明启动成功,反之没有正常启动。
c.使用课件提供的“服务器检查命令”检查:
> telnet ud2 2818 -
客户端命令行连接zookeeper服务器
zkCli.sh -server ip:port -
退出客户端命令行
quit