centos7安装ZooKeeper-cdh

举报
1226741228 发表于 2019/01/16 11:06:11 2019/01/16
【摘要】 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 Z...

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启动成功

clipboard1.png

启动后可查看每台机器的状态

/data/zookeeper-3.4.5-cdh5.14.0/bin/zkServer.sh status

clipboard2.png

可以进入zookeeper客户端

/data/zookeeper-3.4.5-cdh5.14.0/bin/zkCli.sh

8.遇到的问题

(1)ZooKeeper能启动,但是查看状态显示not running,并且查看zook.out文件显示

clipboard3.png

解决方式:

clipboard4.png

在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路径

clipboard5.png

3.

启动报错:

解决方案:

配置jdk+zookeeper环境变量(zookeeper环境变量可以忽略)

clipboard6.png

4.

clipboard7.png

解决方案:

检查zoo.cfg文件中的给dataDir路径是否存在多余空格,如果存在zookeeper在读取此配置文件时会把空格也读进文件名,导致找不到对应目录,pid文件存在在指定文件夹下,所以无法找到

5.

clipboard8.png

解决方案:

导致这个异常的原因通常是因为2181端口已经被其他进程占用了。

通常的做法就是检查当前机器上哪个进程正在占用这个端口,确认其端口占用的必要性,将该进程停止后,再一次启动ZooKeeper即可


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。