centos7安装ZooKeeper-cdh
1.上传安装包
下载的安装包一定要是对应cdh的版本,如cdh5.14.0,对应的是zookeeper-3.4.5-cdh5.14.0.tar.gz
创建安装目录,将此安装包mv到此目录下
2.解压安装包
命令:tar -zxvf zookeeper-3.4.5-cdh5.14.0.tar.gz
可在当前目录
3.配置环境变量
命令:
vim ~/.bash_profile
在文件末位追加,
export ZOOKEEPER_HOME=/data/zookeeper-3.4.5-cdh5.14.0
export PATH=$ZOOKEEPER_HOME/bin:$PATH
让修改生效,
source ~/.bash_profile
4.修改ZooKeeper配置文件
命令:
进入配置目录,
cd /data/zookeeper-3.4.5-cdh5.14.0/conf
将目录下的zoo_sample.cfg文件就在本目录下复制重命名为zoo.cfg,
cp zoo_sample.cfg zoo.cfg
编辑zoo.cfg文件,
vim zoo.cfg
配置数据存储目录为 zookeeper安装目录下的data目录(注意该目录需要新建),修改项为:
dataDir=/data/zookeeper-3.4.5-cdh5.14.0/data
# 日志文件夹
dataLogDir=/data/zookeeper-3.4.5-cdh5.14.0/logs
根据集群规划,配置zookeeper分布式集群,具体为在zoo.cfg文件末尾添加以下内容:
server.1=192.168.40.196:2888:3888
server.2=192.168.40.197:2888:3888
server.3=192.168.40.198:2888:3888
5.创建数据存储目录以及日志目录
命令:
mkdir /data/zookeeper-3.4.5-cdh5.14.0/data
mkdir /data/zookeeper-3.4.5-cdh5.14.0/logs
6.创建myid文件
在数据存储目录下创建myid文件,并且编辑myid文件内容为:1-255(从中选择一个数字),如:192.168.40.196为1,192.168.40.197为2,192.168.40.198为3.
7.启动检查
三台机器均启动zookeeper,分别执行,
/data/zookeeper-3.4.5-cdh5.14.0/bin/zkServer.sh start
jps(root用户下可查看)
可以看到已启动如下进程,表示zookeeper启动成功
启动后可查看每台机器的状态
/data/zookeeper-3.4.5-cdh5.14.0/bin/zkServer.sh status
可以进入zookeeper客户端
/data/zookeeper-3.4.5-cdh5.14.0/bin/zkCli.sh
8.遇到的问题
(1)ZooKeeper能启动,但是查看状态显示not running,并且查看zook.out文件显示
解决方式:
在zkserver.sh文件开头添加,
export JAVA_HOME=/data/jdk1.8.0_191
export PATH=$JAVA_HOME/bin:$PATH
(2)开放防火墙端口
Linux:centos7防火墙开放端口
1、系统命令
systemctl start firewalld #启动
systemctl status firewalld #查看运行状态
systemctl stop firewalld #关闭
systemctl disable firewalld.service #禁止开机启动
firewall-cmd --state #查看默认防火墙状态
firewall-cmd --reload #重启防火墙
2、端口命令
firewall-cmd --zone=public --add-port=80/tcp --permanent #添加端口(--permanent表示永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --query-port=80/tcp #查看防火墙80端口
firewall -cmd --zone=public --remove-port=80/tcp --permanent #删除防火墙80端口
附录:语法
--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
注意:添加完端口后,需要重启防火墙,然后查询端口才生效
命令:
firewall-cmd --list-ports
(3)查看最先启动的日志文件有报错,但是最后一个节点的日志文件没有任何错误
原因:
ZooKeeper集群的每个节点都试图去连接集群中的其它节点,先启动的肯定连不上后面还没启动的,所以上面日志前面部分的异常是可以忽略的,因为当你看最后一个启动节点的日志文件(hbase-hadoop-zookeeper-hsdb02.log)时会发现没有任何错误日志。
(4)其他问题
1.拒绝连接
解决方案:
1.查看系统防火墙是否已经关闭
2.产生的原因:只在一台节点上启动了zookeeper,其他的节点上没有启动zookeeper,会导致拒绝连接,去其他节点启动即可
3.将linux的hosts文件的127.0.0.1那一行删掉或者注释
原因:端口绑定的地址不是127.0.0.1所以不能用这个地址
2.
前提:使用zookeeper版本为3.5.4 beta,jdk版本为1.8以下版本
启动报错:
解决方案:
在zookeeper的配置文件运行环境中指定jdk路径
3.
启动报错:
解决方案:
配置jdk+zookeeper环境变量(zookeeper环境变量可以忽略)
4.
解决方案:
检查zoo.cfg文件中的给dataDir路径是否存在多余空格,如果存在zookeeper在读取此配置文件时会把空格也读进文件名,导致找不到对应目录,pid文件存在在指定文件夹下,所以无法找到
5.
解决方案:
导致这个异常的原因通常是因为2181端口已经被其他进程占用了。
通常的做法就是检查当前机器上哪个进程正在占用这个端口,确认其端口占用的必要性,将该进程停止后,再一次启动ZooKeeper即可
- 点赞
- 收藏
- 关注作者
评论(0)