1、解压zookeeper文件
首先在主节点配置:
将下载到的zookeeper-3.4.6.tar.gz安装文件上传到主机点的/usr/local目录,解压后进入根目录创建data文件夹和logs文件夹
cd /usr/local #移动到安装的目录下
tar -zxvf zookeeper-3.4.6.tar.gz #解压文件
sudo mv zookeeper-3.4.6 zk #为方便将zookeeper-3.4.6改为zk
cd zk
mkdir data
mkdir logs
2、配置zoo.cfg
进入conf目录,将zoo_sample.cfg重命名或拷贝一份,且命名为zoo.cfg
# 重命名
cd /usr/local/zk/conf #进入zookeeper的conf目录下
# 拷贝
cp zoo_sample.cfg zoo.cfg #拷贝该文件并命名为zoo.cfg
修改zoo.cfg配置
tickTime=2000
initLimit=10
syncLimit=5
# 指向zookeeper目录下的data目录
dataDir=/usr/local/zk/data
# 增加日志目录
dataLogDir=/usr/local/zk/logs
clientPort=2181
#添加服务通讯端口以及程序通讯端口
#mao-101我们已经在 hosts里面配置过
server.1=master:2888:3888
server.2=node01:2888:3888
server.3=node02:2888:3888
3、创建myid文件
cd /usr/local/zk/data
vim myid
# 加入内容:1 保存退出vim
1
4、将zk文件压缩打包复制到其他的节点上
tar -zcf ~/zk.master.tar.gz ./zk #打包
scp ./zk.master.tar.gz node01:/home/hadoop #复制到node01节点
scp ./zk.master.tar.gz node02:/home/hadoop #复制到node02节点
5、在其他节点上解压并修改相关文件
cd /usr/local/zk/data #到zk中的data目录下
vim myid #修改文件
将1改为2(参照主机点中的/usr/local/zk/conf/zoo.cfg中的server.X=主机名:2888:3888的x值),保存并退出
若还有其他子节点,和上面的步骤一模一样。
6、环境变量
编辑文件 ~/.bashrc,添加如下:
export ZOOKEEPER_HOME=/usr/local/zk
export PATH=$ZOOKEEPER_HOME/bin:$PATH
刷新生效
source ~/.bashrc
7、修改zookeeper用户组和拥有者(防止以后运行zookeeper相关的操作需要拥root权限)
chown -R hadoop:hadoop /usr/lcoal/zk/
8、防火墙
sudo su
sudo service iptables stop # 关闭防火墙服务
sudo chkconfig iptables off # 禁止防火墙开机自启,就不用手动关闭了
#编辑iptables
vim /etc/sysconfig/iptables
#增加以下内容
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2888 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3888 -j ACCEPT
# 重启防火墙并查看端口状态
service iptables restart
9、添加zookeeper开机启动
// 切换到init.d目录
cd /etc/rc.d/init.d
// 创建zookeeper文件并更新权限
touch zookeeper && chmod +x zookeeper
// 编辑zookeeper文件,并添加如下内容
vim zookeeper
====下面是文件内容=====
#!/bin/bash
#chkconfig:2345 20 90
#description:zookeeper
#processname:zookeeper
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.191.x86_64
export PATH=$JAVA_HOME/bin:$PATH
case $1 in
start) su root /usr/local/zk/bin/zkServer.sh start;;
stop) su root /usr/local/zk/bin/zkServer.sh stop;;
status) su root /usr/local/zk/bin/zkServer.sh status;;
restart) su root /usr/local/zk/bin/zkServer.shrestart;;
*) echo "requirestart|stop|status|restart" ;;
esac
~
10、启动zookeeper
zkServer.sh start
每一个节点都需要执行该步
11、验证:
jps
当有进行QuorumPeerMain出现,则说明启动成功
12、查看状态
zkServer.sh status
可明显看到其中一个节点是Leader,其他都是follow.