1.概述
操作系统为2台ubuntu虚拟机,其ip地址分别为
hadoop 192.168.3.63
hadoop 192.168.3.64
jdk版本为jdk7;
所用的zookeeper为zookeeper-3.4.8stable版本。
2.zookeeper安装
一下操作在每一个节点执行
2.1 zookeeper文件解压缩
将zookeeper解压到/usr/local/目录下,将zookeeper-3.4.8改名为zookeeper
2.2编辑配置文件zoo.cfg
以下命令都是在/usr/local/zookeeper目录下执行的
从zookeeper的sample中复制一个zk的配置文件
hadoop@Master:/usr/local/zookeeper$ cp conf/zoo_sample.cfg conf/zoo.cfg
在这个文件中dataDir所配置的目录下创建myid文件,这里在创建data文件夹“/data”
修改一下这个配置文件,让他支持集群
hadoop@Master:/usr/local/zookeeper$ vim conf/zoo.cfg
编辑如下几项:
tickTime=2000
#修改一下存储数据的目录,给出的模板里放在/tmp/zookeeper(如果/var/lib/zookeeper目录不存在则需要自行创建)
dataDir=/var/lib/zookeeper/data
clientPort=2181
initLimit=10
syncLimit=5
#在这个文件的末尾添加如下配置(遵循server.id=host:port:port的格式):
server.1=192.168.3.63:2888:3888
server.2=192.168.3.64:2888:3888
保存配置退出vim编辑器
2.3创建myid文件
切换到/var/lib/zookeeper/data目录下(这个目录即上面的zoo.cfg中配置的dataDir目录)所创建的myid的文本文件(没有就创建),编辑其内容如下:
在server.1=192.168.3.63这台机器上设置“1”保存
在server.2=192.168.3.64这台机器上设置“2”保存
设置的规则就是在zoo.conf文件指定的server.id,zookeeper用这个数字来标识集群中的哪一个节点。
2.4配置环境变量
export ZOOKEEPER_HOME=/usr/local/zookeeper
#在PATH末尾加上:$ZOOKEEPER_HOME/bin
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SCALA_HOME/bin:$ZOOKEEPER_HOME/bin
2.5启动
切换到zookeeper安装目录的bin下(由于环境变量已配置,所以可以在任意目录下执行)执行命令:
hadoop@Master:/usr/local/zookeeper/bin# sh ./zkServer.sh start
2.6集群验证
在三台机器上分别使用zkServer.sh status命令查看当前服务状态
hadoop@Master:/usr/local/zookeeper/bin# sh ./zkServer.sh status
3.相关错误
安装过程所出现的问题:
3.1、系统时间更新以后,zookeeper所有节点无法启动,将所有进程停掉后机器重启,再次启动zookeeper;
3.2、当出现如下错误:
WARN [QuorumPeer[myid=1]/0:0:0:0:0:0:0:2181:QurorumCnxManager@368]
-Cannot open channel to 2 at election address /122.228.242.241:3888
这是由于在启动过程中,虽然当前机器启动了,但是其他机器没启动,只需要在其他机器上分别启动zookeeper即可
3.3、当出现下如下错误时
Error: Config file not found: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/management/management.properties
在/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/management/路径下发现如下内容全为红色,正常节点该目录下所有文件都为蓝绿色,换掉该节点的JDK后正常启动;
zookeeper的日志文件所在位置:zookeeper文件夹下,data文件夹下,bin文件夹下,所有的日志文件都为zookeeper。