详解分布式应用程序协调服务Zookeeper

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介: 欢迎关注大数据和人工智能技术文章发布的微信公众号:清研学堂,在这里你可以学到夜白(作者笔名)精心整理的笔记,让我们每天进步一点点,让优秀成为一种习惯!主从结构:HDFS、Yarn、HBase、storm、spark、zookeeper都存在单点故障问题hadoop1.

欢迎关注大数据和人工智能技术文章发布的微信公众号:清研学堂,在这里你可以学到夜白(作者笔名)精心整理的笔记,让我们每天进步一点点,让优秀成为一种习惯!

主从结构:HDFS、Yarn、HBase、storm、spark、zookeeper都存在单点故障问题

hadoop1.x没有解决方案

hadoop2.x利用zookeeper实现HA

zookeeper是开源的分布式应用程序协调服务,是Google chubby的开源实现

zookeeper相当于一个数据库,可以实现HA,zookeeper的功能:配置管理、集群管理、分布式锁

zookeeper的体系结构:leader和follower

zookeeper集群本身具有leader选举功能(解决单点故障问题,因此zookeeper集群至少需要三台)和数据同步功能(保证数据的安全性),

选举端口号:3888,同步端口号:2888

zookeeper也支持单点部署,不存在leader选举功能(paxos协议)和数据同步功能(zab协议),状态:standalone(单独的、独立的)

paxos协议的核心思想:当多数server写成功,则任务数据写成功。如果有3个server,则两个写成功即可。

 

安装和配置zookeeper:

安装zookeeper:tar -zxvf zookeeper-3.4.10.tar.gz -C ~/training

配置zookeeper:配置ZOOKEEPER_HOME环境变量:

                vim ~/.bash_profile

export ZOOKEEPER_HOME=/root/training/zookeeper-3.4.10

                export PATH=$ZOOKEEPER_HOME/bin:$PATH

source ~/.bash_profile

zookeeper的核心配置文件:conf/zoo.cfg 使用cp zoo_sample.cfg zoo.cfg得到zoo.cfg

 

zookeeper的安装模式:

1、单点模式:一台机器,不存在leader选举功能和数据同步功能 状态:standalone

修改配置文件zoo.cfg:

1、指定zookeeper中数据保存的目录:

dataDir=/root/training/zookeeper-3.4.10/tmp

2、指定zookeeper的主机是谁:

server.1=bigdata11:2888:3888

3、指定server.1的myid:1

 

2、集群模式:至少三台机器以上  具有leader选举功能和数据同步功能 状态:一个leader,多个follower

1、在bigdata12上安装和配置zookeeper:

安装zookeeper:tar -zxvf zookeeper-3.4.10.tar.gz -C ~/training

配置zookeeper:配置ZOOKEEPER_HOME环境变量:

ZOOKEEPER_HOME=/root/training/zookeeper-3.4.10

PATH=$ZOOKEEPER_HOME/bin:$PAHT

 

2、修改配置文件zoo.cfg:

1、指定zookeeper中数据保存的目录:

dataDir=/root/training/zookeeper-3.4.10/tmp

2、指定zookeeper的主机:

server.1=bigdata12:2888:3888

server.2=bigdata13:2888:3888

server.3=bigdata14:2888:3888

3、指定server.1的myid:1

3、把bigdata12上的zookeeper复制到其他节点上:

scp -r zookeeper-3.4.10 root@bigdata12:/root/training

scp -r zookeeper-3.4.10 root@bigdata13:/root/training

scp -r zookeeper-3.4.10 root@bigdata14:/root/training

 

4、修改bigdata13和bigdata14上的myid文件:

 

5、在每个节点上启动zookeeper:zkServer.sh start

 

zookeeper的数据模型:

zookeeper的数据模型类似于Linux文件系统,呈树形结构,每个目录称作一个z节点,每个z节点上可以存储少量数据,默认1M

 

 

启动zookeeper:zkServer.sh start

停止zookeeper:zkServer.sh stop

查看zookeeper的状态:zkServer.sh status

 

启动zookeeper的客户端命令行工具:zkCli.sh

zookeeper的客户端命令行工具端口号:2181

在zookeeper中创建节点添加数据:create /mydata helloworld

在zookeeper中查看节点:get /mydata

 

作者:李金泽AllenLi,清华大学在读硕士,研究方向:大数据和人工智能

 

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
2月前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
89 3
|
6天前
|
消息中间件 存储 安全
分布式系统架构3:服务容错
分布式系统因其复杂性,故障几乎是必然的。那么如何让系统在不可避免的故障中依然保持稳定?本文详细介绍了分布式架构中7种核心的服务容错策略,包括故障转移、快速失败、安全失败等,以及它们在实际业务场景中的应用。无论是支付场景的快速失败,还是日志采集的安全失败,每种策略都有自己的适用领域和优缺点。此外,文章还为技术面试提供了解题思路,助你在关键时刻脱颖而出。掌握这些策略,不仅能提升系统健壮性,还能让你的技术栈更上一层楼!快来深入学习,走向架构师之路吧!
40 11
|
25天前
|
存储 运维 NoSQL
分布式读写锁的奥义:上古世代 ZooKeeper 的进击
本文作者将介绍女娲对社区 ZooKeeper 在分布式读写锁实践细节上的思考,希望帮助大家理解分布式读写锁背后的原理。
|
2月前
|
分布式计算 NoSQL Java
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
56 2
|
2月前
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
54 1
|
2月前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
54 0
|
3月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
3月前
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1
|
3月前
|
存储 负载均衡 Dubbo
分布式-Zookeeper(一)
分布式-Zookeeper(一)
|
5月前
|
监控 NoSQL Java
分布式锁实现原理问题之ZooKeeper的观察器(Watcher)特点问题如何解决
分布式锁实现原理问题之ZooKeeper的观察器(Watcher)特点问题如何解决