zk分布式安装
机器:3台机器(hadoop2,hadoop3,hadoop4),以hadoop2为例。
zookeeper官网下载:
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz
解压后设置软链接:
ln -s bigdata/zookeeper-3.4.5 zk-current
进入Zookeeper的配置文件conf,做以下的操作
cp ./zoo_sample.cfg zoo.cfg #复制模板文件,并修改
vim zoo.cfg #打开文件,并修改写入下面的内容
dataDir=/home/hadoop/zk-current/data #该目录很重要,将要存放Zookeeper的id号
dataLogDir=/home/hadoop/zk-current/data
server.1=hadoop2:2888:3888
server.2=hadoop3:2888:3888
server.3=hadoop4:2888:3888
cd zk-current
mkdir data
vim myid #写入:
# 分别在各个节点上写入对应的id,从1开始,每个节点只写一个数字,
# 比如在hadoop2上写1,在hadoop3上写2,以此类推。
主要:还可以在bin/zkEnv.sh
中修改LOG目录的位置:
# zkEnv.sh
ZOO_LOG_DIR="/home/hadoop/cluster-data/logs"
加入环境变量:
# vim ~/.bash_profile #修改环境变量
# hadoop环境
export JAVA_HOME=/home/hadoop/java-current
export HADOOP_HOME=/home/hadoop/hadoop-current
export ZOOKEEPER_HOME=/home/hadoop/zk-current
export PATH=$PATH:$JAVA_HOME/bin
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export PATH=$PATH:$ZOOKEEPER_HOME/bin
将上述zk
文件夹及profile
分发到hadoop3、4
机器,并生效。
source /etc/profile
zk集群启动
要注意,按照上述配置的顺序依次启动 start
,并且在各个节点上都要启动Zookeeper,在shell中输入
zkServer.sh start #启动Zookeeper服务,正确启动只有,使用jps命令会看到QuorumPeerMain,如果该进程启动说明Zookeeper服务成功的启动
zkServer.sh status #查看Zookeeper服务的状态,你会看到哪个节点是Leader节点,哪个节点是Follower节点,并且只有一个Zookeeper节点
zkServer.sh stop #停止Zookeeper服务,每个节点都要停止
可以看到启动成功:
[hadoop@hadoop4 bin]$ jps
1320 QuorumPeerMain
425 DataNode
1511 Jps
584 NodeManager
[hadoop@hadoop4 bin]$ zkServer.sh status
JMX enabled by default
Using config: /home/hadoop/zk-current/bin/../conf/zoo.cfg
Mode: follower