Zookeeper集群搭建
1.下载Zookeeper
从Zookeeper官网(http://zookeeper.apache.org/)下载Zookeeper
apache-zookeeper-3.6.0-bin.tar.gz
准备3台虚机(这里名称为hadoop5,hadoop6,hadoop7),将安装包上传到一台虚机上
2.解压
tar解压到特定的文件夹中
[hadoop@hadoop5 install-pkg]$ tar zxvf apache-zookeeper-3.6.0-bin.tar.gz -C ../app
3.修改配置
先进入Zookeeper文件目录下的conf文件夹
[hadoop@hadoop5 conf]$ mv zoo_sample.cfg zoo.cfg //将zoo_sample.cfg修改为zoo.cfg将在里面进行配置
[hadoop@hadoop5 conf]$ vim zoo.cfg //修改配置信息
- tickTime=2000 心跳间隔
- initLimit=10 初始容忍的心跳数
- syncLimit=5 等待最大容忍的心跳数
- dataDir=/tmp/zookeeper 本地保存数据的目录,tmp存放的临时数据,可以修改为自己的目录
- clientPort=2181 客户端默认端口号
其中主要修改 dataDir (这里我指定到了Zookeeper目录下的data文件夹,后面会创建)
然后在最后面添加,保存退出。
server.1=hadoop5:2888:3888 (主机名, 心跳端口、数据端口) server.2=hadoop6:2888:3888 server.3=hadoop7:2888:3888
4.创建data目录
因为上一步 dataDir 指定了一个目录,如果没有那个data文件夹,所以需要创建对应目录。
然后在data目录创建一个文件myid,里面写一个1:
echo 1 >> myid //这里的id对应上一步server.1
5.拷贝到其他两台机器上
[hadoop@hadoop5 app]$ scp -r apache-zookeeper-3.6.0-bin/ hadoop6:/home/hadoop/app [hadoop@hadoop5 app]$ scp -r apache-zookeeper-3.6.0-bin/ hadoop7:/home/hadoop/app
对应其他两台机器去修改data目录下的 myid 为 2 和 3
6.启动Zookeeper
进入bin目录,启动Zookeeper,jps查看进程是否启动(其他两台机器用同样的方式启动)
[hadoop@hadoop5 bin]$ ./zkServer.sh start
[hadoop@hadoop5 bin]$ jps
最后查看ZK的状态:
[hadoop@hadoop5 bin]$ ./zkServer.sh status
7.一键启动Zookeeper
由于去三台机器启动Zookeeper太麻烦,所以可以编写一个一键启动脚本。
①首先先将Zookeeper配置到环境变量
vi /etc/profile
添加如下: #---------------------zookeeper-------------------------- export ZOOKEEPER_HOME=/home/hadoop/app/apache-zookeeper-3.6.0-bin export PATH=$PATH:$ZOOKEEPER_HOME/bin #-------------------------------------------------------
保存
source /etc/profile
②编写脚本
新建一个文件夹存放自己写的脚本
编写启动脚本 zk-start.sh
#!/bin/bash echo "--------start zkServer------" echo "--hadoop5,hadoop6,hadoop7---"
for host in 5 6 7
do ssh hadoop$host "source /etc/profile; /home/hadoop/app/apache-zookeeper-3.6.0-bin/bin/zkServer.sh start"
if [$? -ne 0];then echo "$host zk failure"
else echo "$host zk start successful" fi done
编写停止脚本 zk-stop.sh
#!/bin/bash echo "--------start zkServer------" echo "--hadoop5,hadoop6,hadoop7---"
for host in 5 6 7
do ssh hadoop$host "source /etc/profile; /home/hadoop/app/apache-zookeeper-3.6.0-bin/bin/zkServer.sh stop"
if [$? -ne 0];then echo "$host zk stop failure"
else echo "$host zk stop successful" fi done
③将启动脚本加入到环境变量
vi /etc/profile
添加如下:
#---------------------my-scripts--------------------- export MY_SCRIPTS=/home/hadoop/my-scripts export PATH=$PATH:$MY_SCRIPTS #-----------------------------------------------------
保存
source /etc/profile
8.测试启动
[hadoop@hadoop5 my-scripts]$ zk-start.sh
启动成功,再测试停止:
[hadoop@hadoop5 my-scripts]$ zk-stop.sh
到此,Zookeeper集群搭建就完成了。