大数据(2h)ZooKeeper

本文续:https://yellow520.blog.youkuaiyun.com/article/details/110425351
已配置好网络、免密登录、Java和Hadoop环境

1、ZooKeeper简介

  • 开源的 分布式应用程序协调服务
  • 个人理解:使用 分布式进程统一 共享命名空间
  • 用途:配置维护、域名服务、分布式同步、组服务、Hadoop集群高可用
  • 依赖Java环境
  • 官网:https://zookeeper.apache.org

使用 分布式进程统一 共享命名空间

一个领导者(leader),多个跟随者(follower)组成的集群
要求集群半数以上存活,建议集群机器数量为奇数

层次命名空间(Hierarchical Namespace)

节点类型:持久化节点、持久化带序节点、临时节点、临时带序节点

2、单机安装

可跳过此步直接到本文的【3、集群部署】
本文ZooKeeper版本:apache-zookeeper-3.5.7-bin.tar.gz

2.1、解压到指定目录并改名

tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/
cd /opt
mv apache-zookeeper-3.5.7-bin zookeeper
chown -R root:root zookeeper

2.2、环境变量

echo "# Zookeeper" >> /etc/profile.d/custom.sh
echo "export ZOOKEEPER_HOME=/opt/zookeeper" >> /etc/profile.d/custom.sh
echo "export PATH=\$PATH:\$ZOOKEEPER_HOME/bin" >> /etc/profile.d/custom.sh
cat /etc/profile.d/custom.sh
source /etc/profile.d/custom.sh

2.3、配置

配置很多,主要改下数据存放路径

cd $ZOOKEEPER_HOME/conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
# 数据存放路径,建议写绝对路径
dataDir=/opt/zookeeper/zkData
主要参数说明默认值
tickTimetick 毫秒数2000
initTick初始同步阶段可接受的最大 tick 数量10
syncLimit同步可接受的最大 tick 数量5
dataDir数据存放路径
clientPort客户端的网络端口2181

2.4、服务器启停

启动

zkServer.sh start

查看进程

jps -l | grep QuorumPeerMain

查看状态

zkServer.sh status

关闭

zkServer.sh stop

2.5、客户端操作

命令基本功能描述示例
zkCli.sh开启客户端连到服务端
ls查看子节点
-w监听子节点变化
ls /zookeeper
create创建节点
-e临时
-s带序
create /a1
set设置节点值set /a1 aaa
get获得节点值
-w监听节点值变化
get /a1
stat查看节点状态stat /a1
delete删除节点delete /a1
deleteall递归删除节点deleteall /a1
quit退出客户端
create /a1 "value1"
create /a1/b1 "value11"
get -s /a1/b1
stat /a1/b1
deleteall /a1
quit
节点状态说明
cZxid创建节点的事务ID
ctime创建时间
mZxid更新节点的事务ID
mtime更新时间
pZxid最后更新的子节点事务ID
cversion版本号,即修改次数
dataVersion数据版本号
aclVersion访问控制列表(ACL)的版本号?
ephemeralOwner临时节点的物主
dataLength节点值长度
numChildren子节点数量

3、集群部署

3.1、解压到指定目录并改名

tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/
cd /opt
mv apache-zookeeper-3.5.7-bin zookeeper
chown -R root:root zookeeper

3.2、集群环境变量

echo "# Zookeeper" >> /etc/profile.d/custom.sh
echo "export ZOOKEEPER_HOME=/opt/zookeeper" >> /etc/profile.d/custom.sh
echo "export PATH=\$PATH:\$ZOOKEEPER_HOME/bin" >> /etc/profile.d/custom.sh
cat /etc/profile.d/custom.sh
scp -r /etc/profile.d/custom.sh hadoop101:/etc/profile.d/
scp -r /etc/profile.d/custom.sh hadoop102:/etc/profile.d/
source /etc/profile.d/custom.sh
ssh hadoop101 "source /etc/profile.d/custom.sh"
ssh hadoop102 "source /etc/profile.d/custom.sh"

3.3、集群配置、文件分发

3.3.1、配置文件

cd $ZOOKEEPER_HOME/conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
# 数据存放路径
dataDir=/opt/zookeeper/zkData
# 集群服务器配置
server.0=hadoop100:2888:3888
server.1=hadoop101:2888:3888
server.2=hadoop102:2888:3888
server配置上面示例说明
第一个参数0第几号服务器
第二个参数hadoop100服务器的地址
第三个参数2888FollowerLeader交换信息的端口
第四个参数3888执行重新选举的端口,用于Leader挂了的情况

3.3.2、文件分发

rsync -a /opt/zookeeper hadoop101:/opt/
rsync -a /opt/zookeeper hadoop102:/opt/

3.3.3、集群服务器编号

对应【3.3.1】的server配置

mkdir $ZOOKEEPER_HOME/zkData
ssh hadoop101 "mkdir $ZOOKEEPER_HOME/zkData"
ssh hadoop102 "mkdir $ZOOKEEPER_HOME/zkData"
echo 0 > $ZOOKEEPER_HOME/zkData/myid
ssh hadoop101 "echo 1 > $ZOOKEEPER_HOME/zkData/myid"
ssh hadoop102 "echo 2 > $ZOOKEEPER_HOME/zkData/myid"

3.4、集群启停

集群启动

zkServer.sh start
ssh hadoop101 "zkServer.sh start"
ssh hadoop102 "zkServer.sh start"

集群状态

zkServer.sh status
ssh hadoop101 "zkServer.sh status"
ssh hadoop102 "zkServer.sh status"

集群停止

zkServer.sh stop
ssh hadoop101 "zkServer.sh stop"
ssh hadoop102 "zkServer.sh stop"

ZooKeeper集群脚本

4、附录

en🔉cn
ephemeral/ɪˈfemərəl/adj. 短暂的;朝生暮死的
n. 只生存一天的事物
acknowledgement/əkˈnɑːlɪdʒmənt/n. 承认;确认;感谢
synchronization/ˌsɪŋkrənəˈzeɪʃn/n. [物] 同步;同时性

观察者模式(软件设计模式的一种)
Observer Mode
现实场景: 拍卖的时候,拍卖师观察最高标价,然后通知给其他竞价者竞价

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值