大数据-玩转数据-Zookeper集群部署
1、说明
前面已安装了hadoop,yarn,spark,下面接着安装ZooKeeper
2、 安装ZooKeeper
2.1 下载压缩包
官网:http://zookeeper.apache.org/releases.html
需要下载bin包, apache-zookeeper-3.7.0-bin.tar.gz
2.2 解压
hadoop用户登录(已有root权限)
tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz
2.3 重命名
mv apache-zookeeper-3.7.0-bin.tar.gz zookeeper
将解压后的文件夹重命名,方便后续操作
2.4 修改环境变量
vi /home/hadoop/.bashrc
#在.bashrc文件结尾添加内容
export ZOOKEEPER_HOME=/home/hadoop/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
2.5生效环境变量
source /home/hadoop/.bashrc
2.6 修改配置文件
cd zookeeper/conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
# 打开配置文件进行修改
添加以下内容
dataDir=/home/hadoop/zookeeper/data
dataLogDir=/home/hadoop/zookeeper/log
server.1=server1:2888:3888
# (主机名, 心跳端口、数据端口) 搭建集群的其他服务器的信息 server1是在/etc/hosts文件中进行域名映射的主机名,如果没有做映射那么就使用ip地址
server.2=server2:2888:3888
server.3=server3:2888:3888
2.7 创建文件夹
cd /home/hadoop/zookeeper
mkdir data # 是在配置文件中设置的目录
mkdir log
2.8 添加myid
进入data文件夹
cd data
创建新文件 myid
vi myid
myid 文件 添加内容是在配置文件中设置的主机对应的数字
1
2.9 集群分发
分发zoopkeeper
scp -r /home/hadoop/zookeeper hadoop@hadoop2:/home/hadoop/
scp -r /home/hadoop/zookeeper hadoop@hadoop3:/home/hadoop/
分发环境配置
scp /home/hadoop/.bashrc hadoop2:/home/hadoop/
scp /home/hadoop/.bashrc hadoop3:/home/hadoop
修改其他服务器上的myid
在hadoop2上将myid文件的内容修改为 2
在hadoop3上将myid文件的内容修改为 3
2.10 启动
zkServer.sh start # 注意:每台服务器都要启动
2.11 查看集群状态
jps # 查看进程
出现QuorumPeerMain进程代表启动成功
2122 QuorumPeerMain
2153 Jps
查看集群的状态,主从信息
zkServer.sh status
会输出以下信息
ZooKeeper JMX enabled by default
Using config: /root/zookeeper/bin/../conf/zoo.cfg # 配置文件路径
Mode: leader/ follower
leader代表老大,follower代表小弟
3、 ZooKeeper集群启动shell脚本
3.1 创建shell文件
vi /home/hadoop/ZK_All_Start.sh
#!/bin/bash
echo "开始启动zookeeper服务..."
for i in 1 2 3
do
echo "正在启动hadoop$i的zookeeper服务..."
# 需要将hadoop修改为自己集群的主机名 我的主机名分别为hadoop1, hadoop2, hadoop3
ssh hadoop$i "source /home/hadoop/.bashrc; /home/hadoop/zookeeper/bin/zkServer.sh start"
# /home/hadoop/zookeeper/bin/zkServer.sh start 这里需要修改为自己的解压路径
done
4、总结
ZooKeeper 默认只有 Leader 和 Follower 两种角色,没有 Observer 角色。为了使用 Observer 模式,在任何想变成Observer的节点的配置文件中加入:peerType=observer 并在所有 server 的配置文件中,配置成 observer 模式的 server 的那行配置追加 :observer
ZooKeeper 是一个高可用的分布式数据管理与协调框架。基于对ZAB算法的实现,该框架
能够很好地保证分布式环境中数据的一致性。也是基于这样的特性,使得 ZooKeeper 成为了
解决分布式一致性问题的利器。
5、补充
配置zoo.cfg时
server.0=spark1:2888:3888(此处有空格)
server.1=spark2:2888:3888
server.2=spark3:2888:3888
容易启动不成功,报错