前言
本人大三大数据专业,上周初学如何搭建hadoop环境。配置好了静态ip搭建完了hadoop分布式集群后,开始搭建Zookeeper软件,之后搭建hbase环境(CentOS6.7搭建Zookeeper_fanstuck的博客-CSDN博客)。在此领域本人有诸多不明确疑问,可能文章会有些许错误,望大家在评论区指正,本篇文章错误将会不断更正维护。
具体参考了CentOS 6.7安装ZooKeeper 3.4.9 - Genesis2018 - 博客园
这位大佬的安装步骤。
一、Zookeeper是什么?
为了实现分布式服务中的数据同步与一致性、群组管理监控、分布投票与锁、以及命名寻址等,需要在集群中提供分布式协调服务。为此便产生了Zookeeper。
二、安装步骤
Zookeeper采用集群化部署方式,一般部署在多台服务器上,以防单点失效。为了在投票时易于收敛一般采用奇数台服务器部署。具体架构和存储结构本篇文章不给予阐述,只是部署。
1.镜像下载
本人用的是清华镜像下载的是3.4.14版本的Zookeeper,建议使用带bin后缀的tar包下载,不带bin后缀为源代码形式未编译,安装完后缺少bin目录,会报错。
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper- 3.4.14/zookeeper- 3.4.14.tar.gz
tar解压缩下载的文件
tar -zxvf zookeeper-3.4.14.bin.tar.gz
将zookeeper移至local目录下
mv zookeeper- 3.4.14 /usr/local/
创建zookeeper的数据目录
mkdir -p /usr/local/zookeeper- 3.4.14/data
编辑配置环境
cp /usr/local/zookeeper- 3.4.14/conf/zoo_sample.cfg /usr/local/zookeeper- 3.4.14/conf/zoo.cfg
vi /usr/local/zookeeper- 3.4.14/conf/zoo.cfg
在zoo.cfg添加部署的虚拟机地址
dataDir=/usr/local/zookeeper- 3.4.14/data
server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888
2888端口号是ZooKeeper服务之间通信的端口,而3888是ZooKeeper与其他应用程序通信的端口。
配置zookeeper的环境变量
vi /etc/profile.d/zookeeper.sh
添加
export ZOOKEEPER_HOME=/usr/local/zookeeper- 3.4.14 export PATH=$PATH:$ZOOKEEPER_HOME/bin
记得执行生效
source /etc/profile.d/zookeeper.sh
传给其他虚拟机
scp -r /etc/profile.d/zookeeper.sh hadoopxx:/etc/profile.d/ scp -r /usr/local/zookeeper- 3.4.14 hadoopxx:/usr/local/
查看命令执行成功与否
echo $? 0
在其他节点上
vi /usr/local/zookeeper- 3.4.14/data/myid
添加
1
根据节点数量依次排列
文件中只包含一行,且内容为该节点对应的从属节点中的id
编号。主节点和从属节点分别对应的myid文件中的值是1和2....。
执行保存
source /etc/profile.d/zookeeper.sh
回到master上开启zookeeper
/usr/local/zookeeper- 3.4.14/bin/zkServer.sh start ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper- 3.4.14/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
利用zkCli.sh链接zookeepe
/usr/local/zookeeper- 3.4.14/bin/zkCli.sh -server hadoop1:2181
[zk: localhost:2181(CONNECTED) 0] help
[zk: localhost::2181(CLOSED) 3] quit
在其他节点上开启服务
# /usr/local/zookeeper- 3.4.14/bin/zkServer.sh start ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper- 3.4.14/bin/../conf/zoo.cfg Starting zookeeper ... STARTED # /usr/local/zookeeper- 3.4.14/bin/zkCli.sh -server hadoopxx:2181 [zk:hadoopxx:2181(CONNECTED) 0] quit
1.启动测试
开启所有节点上的zkserver
查看各个节点的状态
/zkServer.sh status
如果成功启动则会显示该节点推选结果是leader或者follower
总结
需要根据日志报的错误自行调配,之后我会发布关于配置zookeeper常见错误的一些解决方法,希望能帮到大家!