1.简介
分布式场景下的各个进程间的协调运作离不开zookeeper, zookeeper已经是大数据领域提供分布式协调服务的事实标准。
本文只介绍zookeeper的安装方法。
2. 节点规划如下:
xufeng-1 | xufeng-2 | xufeng-3 |
zookeeper | zookeeper | zookeeper |
3.目录规划
drwxrwxr-x. 3 hadoop hadoop 4096 7月 22 15:15 hadoop-data drwxrwxr-x. 3 hadoop hadoop 4096 7月 22 14:34 hadooplib drwxrwxr-x. 3 hadoop hadoop 4096 7月 22 15:06 java lrwxrwxrwx. 1 hadoop hadoop 55 7月 22 15:07 zookeeper -> /opt/hadoop/hadooplib/cdh5.4.2/zookeeper-3.4.5-cdh5.4.2 drwxrwxr-x. 2 hadoop hadoop 4096 7月 22 15:25 zookeeper-config
上述中:
1.软链接形式有利于后续版本升级后不会影响到环境变量等参数的设定。
2.配置文件独立于软件包有利于升级后不会影响到现有的运行参数。
4.开始安装
【各个节点上操作】
a.设定环境变量参数:
#zookeeper export ZOOKEEPER_HOME=/opt/hadoop/zookeeper export ZOOCFGDIR=/opt/hadoop/zookeeper-config
b.设定配置文件
将软件包中的conf下的文件拷贝到 zookeeper-config文件夹下
将zoo_sample.cfg改名为zoo.cfg
[hadoop@xufeng-1 hadoop]$ cd zookeeper-config/ [hadoop@xufeng-1 zookeeper-config]$ ll 总用量 12 -rwxr-x---. 1 hadoop hadoop 535 7月 22 15:19 configuration.xsl -rwxr-x---. 1 hadoop hadoop 2717 7月 22 16:20 log4j.properties -rwxr-x---. 1 hadoop hadoop 913 7月 22 15:22 zoo.cfg
c.修改zoo.cfg,根据环境信息增加如下三行信息
# the port at which the clients will connect clientPort=2181 server.1=xufeng-1:2888:3888 server.2=xufeng-2:2888:3888 server.3=xufeng-3:2888:3888 # # Be sure to read the maintenance section of the
d.在zoo.cfg配置中查看dataDir参数设定信息,分别在各个主机上的此目录中创建myid文件:
[hadoop@xufeng-1 hadoop]$ cd hadoop-data/zookeeper/ [hadoop@xufeng-1 zookeeper]$ ll 总用量 8 -rw-rw-r--. 1 hadoop hadoop 2 7月 22 15:22 myid
e.设定myid内容,根据步骤c的设定,在xufeng-1主机上的myid文件中写入1,xufeng-2的myid文件中写入2,xufeng-3的myid文件写入3
e.配置日志目录和参数
在~/.brash_profile中增加如下两个变量:
export ZOO_LOG_DIR=/opt/hadoop/zookeeper/logs export ZOO_LOG4J_PROP='INFO,ROLLINGFILE'
以上安装部分完成
5. 启动zookeeper
在各个几点上
a. 执行zkServer.sh start启动脚本
[hadoop@xufeng-3 hadoop]$ zkServer.sh start JMX enabled by default Using config: /opt/hadoop/zookeeper-config/zoo.cfg Starting zookeeper ... STARTED
注意:
听说centOS6有一个bug:
需要关闭防火墙才能联通端口:
所以当你启动zookeeper后发现日志中有no route hosts错误时候多半是这个原因,可以执行如下命令:
service iptables stop
chkconfig iptables off
b. 查看各个zookeeper的状态:
[hadoop@xufeng-1 zookeeper]$ zkServer.sh status JMX enabled by default Using config: /opt/hadoop/zookeeper-config/zoo.cfg Mode: leader [hadoop@xufeng-2 zookeeper]$ zkServer.sh status JMX enabled by default Using config: /opt/hadoop/zookeeper-config/zoo.cfg Mode: follower [hadoop@xufeng-3 hadoop]$ zkServer.sh status JMX enabled by default Using config: /opt/hadoop/zookeeper-config/zoo.cfg Mode: follower
以上。