大数据技术之kafka (第 3 章 Kafka 架构深入) Zookeeper 在 Kafka 中的作用
Kafka 集群中有一个 broker 会被选举为 Controller,负责管理集群 broker 的上下线,所有 topic 的分区副本分配和 leader 选举等工作。
Controller 的管理工作都是依赖于 Zookeeper 的。
以下为 partition 的 leader 选举过程:
Leader选举流程
我们试试当这个主节点挂了,谁会被抢到(目前这个brokers/ids/ 有0 1 2三个节点)
我们启动zk客户端
[root@backup01 bin]# ./zkCli.sh
Connecting to localhost:2181
2020-04-19 16:05:13,799 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.13-2d71af4dbe22557fda74f9a9b4309b15a7487f03, built on 06/29/2018 04:05 GMT
2020-04-19 16:05:13,815 [myid:] - INFO [main:Environment@100] - Client environment:host.name=backup01
2020-04-19 16:05:13,815 [myid:] - INFO [main:Environment@100] - Client environment:java.version=1.8.0_172
2020-04-19 16:05:13,817 [myid:] - INFO [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2020-04-19 16:05:13,817 [myid:] - INFO [main:Environment@100] - Client environment:java.home=/usr/local/java/jdk1.8.0_172/jre
2020-04-19 16:05:13,817 [myid:] - INFO [main:Environment@100] - Client environment:java.class.path=/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin/../build/classes:/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin/../build/lib/*.jar:/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin/../lib/slf4j-log4j12-1.7.25.jar:/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin/../lib/slf4j-api-1.7.25.jar:/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin/../lib/netty-3.10.6.Final.jar:/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin/../lib/log4j-1.2.17.jar:/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin/../lib/jline-0.9.94.jar:/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin/../lib/audience-annotations-0.5.0.jar:/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin/../zookeeper-3.4.13.jar:/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin/../src/java/lib/*.jar:/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin/../conf:
2020-04-19 16:05:13,817 [myid:] - INFO [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2020-04-19 16:05:13,817 [myid:] - INFO [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2020-04-19 16:05:13,817 [myid:] - INFO [main:Environment@100] - Client environment:java.compiler=<NA>
2020-04-19 16:05:13,817 [myid:] - INFO [main:Environment@100] - Client environment:os.name=Linux
2020-04-19 16:05:13,817 [myid:] - INFO [main:Environment@100] - Client environment:os.arch=amd64
2020-04-19 16:05:13,817 [myid:] - INFO [main:Environment@100] - Client environment:os.version=3.10.0-862.el7.x86_64
2020-04-19 16:05:13,817 [myid:] - INFO [main:Environment@100] - Client environment:user.name=root
2020-04-19 16:05:13,817 [myid:] - INFO [main:Environment@100] - Client environment:user.home=/root
2020-04-19 16:05:13,817 [myid:] - INFO [main:Environment@100] - Client environment:user.dir=/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin
2020-04-19 16:05:13,818 [myid:] - INFO [main:ZooKeeper@442] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@277050dc
Welcome to ZooKeeper!
2020-04-19 16:05:13,878 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1029] - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2020-04-19 16:05:14,007 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@879] - Socket connection established to localhost/0:0:0:0:0:0:0:1:2181, initiating session
2020-04-19 16:05:14,033 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1303] - Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x10004d8e0310000, negotiated timeout = 30000WATCHER::WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0]
我们看到 controller 是brokerid:0
[zk: localhost:2181(CONNECTED) 2] ls /
[cluster, controller_epoch, controller, brokers, zookeeper, admin, isr_change_notification, consumers, log_dir_event_notification, latest_producer_id_block, config]
[zk: localhost:2181(CONNECTED) 3] get /controller
{"version":1,"brokerid":0,"timestamp":"1586133981273"}
cZxid = 0x500000003
ctime = Mon Apr 06 08:46:21 CST 2020
mZxid = 0x500000003
mtime = Mon Apr 06 08:46:21 CST 2020
pZxid = 0x500000003
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x2000392dd2c0000
dataLength = 54
numChildren = 0
[zk: localhost:2181(CONNECTED) 5]
当我们的kafkabrokerid挂了之后,zk会为我们怎么选举,我们将kafka的brokerid:0的节点 kill掉
查看这个brokerid为0的节点进程
[root@backup01 bin]# kill -9 19728
[root@backup01 bin]# jps
54464 ZooKeeperMain
12732 Elasticsearch
54750 Jps
14623 QuorumPeerMain
[root@backup01 bin]#
[zk: localhost:2181(CONNECTED) 7] get /controller
{"version":1,"brokerid":1,"timestamp":"1587284613737"}
cZxid = 0x600000005
ctime = Sun Apr 19 16:23:33 CST 2020
mZxid = 0x600000005
mtime = Sun Apr 19 16:23:33 CST 2020
pZxid = 0x600000005
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x3000065a6f40003
dataLength = 54
numChildren = 0
[zk: localhost:2181(CONNECTED) 8]
大数据技术之kafka (第 3 章 Kafka 架构深入) Zookeeper 在 Kafka 中的作用相关推荐
- 大数据技术原理与应用——第一章 大数据概述
第一章 大数据概述 1.1 大数据时代 1.1.1 第三次信息化浪潮 信息化浪潮 发生时间 标志 解决的问题 代表企业 第一次浪潮 1980年前后 个人计算机 信息处理 Intel.AMD.IBM.苹 ...
- 大数据技术原理与应用——第一章
大数据时代 三次信息化浪潮 信息化浪潮 时间 标志 解决的问题 第一次信息化浪潮 1980 个人计算机 信息处理 第二次信息化浪潮 1995 互联网 信息传输 第三次信息化浪潮 2010 大数据.云计 ...
- 百分点大数据技术团队:可插拔OSS架构设计和实战经验
编者按:随着互联网.大数据和人工智能等技术的发展,信息资源得到最大程度的共享,但随之而来的海量文件存取的功能和性能问题也日渐突出.在政务领域解决方案中,对象存储往往扮演着非常重要的角色,如全国各地的健 ...
- 大数据技术之Hive 第4章 DDL数据定义语言
第4章 DDL数据定义语言 4.1 创建数据库 CREATE DATABASE [IF NOT EXISTS] database_name [COMMENT database_comment] [LO ...
- 百分点大数据技术团队:互联网舆情系统的架构实践
现代社会是一个信息驱动的社会,每天都有大量的信息产生. 据统计,互联网上每天有数十亿条媒体文章产生,在线信息检索超过500亿次. 伴随着互联网技术的发展和新媒体创新应用,人们越来越倾向于通过微博.微信 ...
- 大数据技术技能分析大赛——第一章 python数据分析概述
目标:掌握python,进行数据处理.统计分析.回归建模和数据可视化. 教材:<大数据分析务实初级教程(python)## 标题> 第一章 python数据分析概述 1.数据分析概述 1 ...
- 大数据技术之Shell 第11章 企业真实面试题
第10章 正则表达式入门 正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本.在Linux中,grep,sed ...
- 大数据技术之 Flume
为什么选用Flume Python爬虫数据 Java后台日志数据 服务器本地磁盘 文件夹 HDFS Flume Flume最主要的作用就是,实时读取服务器本地磁盘的数据,将数据写入到HDFS. 网络端 ...
- axure9数据统计插件_WMDA:大数据技术栈的综合实践
一.概述 WMDA是58自主开发的用户行为分析产品,同时也是一款支持无埋点的数据采集产品,只需要在第一次使用的时候加载一段SDK代码,即可采集全量.实时的PC.M.APP三端以及小程序的用户行为数据. ...
- 大数据技术之MapReduce
大数据技术之MapReduce 目录 大数据技术之MapReduce 第 1 章 MapReduce 概述 1.1 MapReduce 定义 1.2 MapReduce 优缺点 1.2.1 优点 1. ...
最新文章
- DNS服务,A记录,URL转发,MX记录,NS记录,CNAME记录,解释与设置教
- 服务器标记“asp:ScriptManager”不明确。
- 启动DevStack的各项服务
- [No0000E6]C# 判断与循环
- linux应用小技巧
- netmiko可以连接的设备有哪些_气体报警器可以联动哪些设备
- 【git】Git 提示fatal: remote origin already exists 错误解决办法
- [c/c++] programming之路(12)、循环结构
- PCL中的采集器之一OpenNI
- Android冷启动优化解析
- k8s的精简版k3s安装
- 学生信息管理系统(一)——登录窗体
- 如何登录锐捷设备(业务软件篇)
- 局域网网络流量监控_网工必知:用于监控企业网络的10款最佳工具,拿走!不谢!...
- 美团后台开发暑期实习面经(一面+二面)已offer
- [转帖]探秘华为(二):华为和H3C(华三)的分道扬镳
- 在3dmax软件中添加样条的方法和详细步骤
- 深入浅出PA和LNA
- (IROS 2022) 基于事件相机的单目视觉惯性里程计 / Event-based Monocular Visual Inertial Odometry
- zookeeper C API 完整运行实例
热门文章
- 详细地图_一目了然:蒙城学区划分详细地图
- 【OpenCV 例程200篇】89. 带阻滤波器的传递函数
- 我的Go+语言初体验——(1)超详细安装教程
- iOS开发里面的4个层次
- python数据可视化散点图案例_Python数据可视化—散点图_python 数据可视化
- 国产自主可控的形式化验证代码自动生成工具ModelCoder可替代Matlab/Sumlink
- django项目连接远程数据库
- Python中json和pickle模快dumps()、loads()、dump()、load()序列化和反序列化实例
- 【Python爬虫】BeautifulSoup4 库的一些用法
- MPI对道路车辆情况的Nagel-Schreckenberg 模型进行蒙特卡洛模拟