我要进大厂之大数据ZooKeeper知识点(1)
01 让我们一起学大数据
老刘又回来啦!在实验室师兄师姐都找完工作之后,在结束各种科研工作之后,老刘现在也要为找工作而努力了,要开始大数据各个知识点的复习总结了。老刘会分享出自己的知识点总结,一是希望能够得到大佬们的批评和指点,二是希望能够给想学大数据的同学一点帮助!
至于为什么先分享出ZooKeeper的知识点总结,因为老刘今天才看完这个,打铁要趁热,赶紧把它记在脑子里!所有的知识点,老刘采用口语化的方式。
02 知识点总结
第1点:什么是ZooKeeper?
这个是非常重要的,学任何东西首先要搞清楚的就是它是什么。简而言之,Zookeeper是一个分布式协调框架,注意是协调框架,在kafka0.8中就会有一个问题,关于这个协同框架的,以后会说道,大家先注意下。它用来解决分布式系统中系统一致性的问题,利用Zookeeper可以实现Hadoop的高可用,可以将kafka的offset保存在Zookeeper,但是这里会有一个问题,以后说到kafka会好好说说这个问题。
第2点:为什么要用Zookeeper?
这个问题,可以举个例子,在Hadoop的高可用中,如果不使用Zookeeper,那它两个NameNode怎么切换,就要自己写程序实现切换,这样就会导致注意力分散了,hadoop本身做存储之类的,现在还要我hadoop考虑高可用的逻辑,实在是太累了,能不能让别人分担下我的压力。所以就用Zookeeper来帮助Hadoop分担压力,让Hadoop集中注意力。
第3点:Zookeeper的一些命令行操作
# 启动ZooKeeper集群;在ZooKeeper集群中的每个节点执行此命令
zkServer.sh start # 停止ZooKeeper集群(每个节点执行以下命令)
zkServer.sh stop # 查看集群状态(每个节点执行此命令)
zkServer.sh status # 连接ZooKeeper的服务器
zkCli.sh -server node01:2181,node02:2181,node03:2181
#查看ZooKeeper根目录/下的文件列表
ls / #创建节点,并指定数据
create /lao liu #获得某节点的数据
get /lao #修改节点的数据
set /lao liu1 #删除节点
delete /lao
第4点:在IDEA中进行JAVA API,这个要记住,千万不能忽略!
这个就不分享了,太多了,想要的话,直接联系老刘,老刘给你就是了。
第5点:ZooKeeper的组成成分
它有三个部分,一个是类似于文件系统的目录节点树,来存储数据,二是一些操作ZooKeeper的基本命令,三是它的监听器Watcher。
什么叫做类似于文件系统的目录节点树?
那什么是监听器?
这里就先简单讲讲监听器的一些概念,监听器它有三个部分,(1)注册:客户端向ZooKeeper集群注册监听器(2)监听事件:监听器负责监听一些的事件(3)回调函数:当监听器监听到事件的发生后,就会调用的回调函数。
在这里可以举个例子,就是在一些机构看到的,感觉比较经典,就拿出来给大家看看。
1、一哥们去酒店办理入住,但是被告知目前无空房
2、这哥们告诉客服:帮我留意一下有没有空出的房间,如果有,就及时通知我
(相当于注册监听器,监听一些事件)
3、将近12点,有房客退房,有空闲的房间(发现要监听的事件)
4、客服发现有空房(监听到了事件)
5、及时通知这哥们
6、这哥们收到通知后,马上赶回酒店(就相当于调用了回调函数)
第6点:ZooKeeper中的数据节点ZNode
ZNode分为4类,有个表一看就能明白这四个数据节点:
持久节点 | 临时节点 | |
非有序节点 | create | create -e |
有序节点 | create -s | create -s -e |
持久节点就相当于文件目录系统中的目录,而临时节点就是和session会话绑定在一起的,当客户端和ZooKeeper集群相连接,就相当于建立了一个会话,当这个连接断开,会话就失效,临时节点也失效,会被删除。
那为什么还会有有序节点呢?
这个就是为了防止多个客户端在同一个目录下,创建同名的ZNode,如果同名,就会报错,所以就有了有序节点,这有序节点在创建时,ZooKeeper会自动在这些节点后面追加上一个整型自增的数字。
第7点:什么是session会话呢?
客户端和ZooKeeper集群中某一个节点建立TCP长连接,就叫一个会话。在一个会话中,请求以FIFO(先进先出)的顺序执行,比如客户端那边先发出一个create请求后,又发出了一个get请求,那么在执行时,就会先执行create,再执行get。但是呢,如果有两个会话,那就没有办法保证两个会话间的FIFO了,它只能保证一个会话中的FIFO,这个老刘不知道原因,只是记下来了,哈哈哈!
第8点:什么是事务?
在ZooKeeper中的事务,老刘还没理解清楚,这里就不写了,大家自行百度,等以后哪天老刘突然想到了,再来弥补。
第9点:什么是Watcher?
老刘在第5点就简单说了下Watcher的例子,现在好好讲讲它的用处,首先问一个问题,客户端和ZooKeeper建立连接后,客户端是如何获取到Zookeeper中最新的数据的呢,它是如何感知到有数据变化的呢,那就是通过介绍的watcher,老刘在第5点举了一个watcher的例子,老刘觉得非常经典。通过那个例子,我们可以理解到watcher就是客户端在ZooKeeper服务器上注册的监听器,用它来监听数据节点ZNode上数据的变化,然后告诉客户端最新消息。
03 总结
今天就差不多了,接下来的部分全是ZooKeeper的架构原理之类的,比较难以理解,老刘尽量用口语化的方式写出来,希望对大数据开发感兴趣的同学,和老刘一起加油!咱们一起去大厂!
最后,有事,公众号:努力的老刘,进行联系;没事,就和老刘一起学大数据,进大厂!
我要进大厂之大数据ZooKeeper知识点(1)的更多相关文章
- 我要进大厂之大数据ZooKeeper知识点(2)
01 我们一起学大数据 接下来是大数据ZooKeeper的比较偏架构的部分,会有一点难度,老刘也花了好长时间理解和背下来,希望对想学大数据的同学有帮助,也特别希望能够得到大佬的批评和指点. 02 知识 ...
- 我要进大厂之大数据MapReduce知识点(2)
01 我们一起学大数据 今天老刘分享的是MapReduce知识点的第二部分,在第一部分中基本把MapReduce的工作流程讲述清楚了,现在就是对MapReduce零零散散的知识点进行总结,这次的内容大 ...
- 我要进大厂之大数据MapReduce知识点(1)
01 我们一起学大数据 老刘今天分享的是大数据Hadoop框架中的分布式计算MapReduce模块,MapReduce知识点有很多,大家需要耐心看,用心记,这次先分享出MapReduce的第一部分.老 ...
- 我要进大厂之大数据Hadoop HDFS知识点(1)
01 我们一起学大数据 老刘今天开始了大数据Hadoop知识点的复习,Hadoop包含三个模块,这次先分享出Hadoop中的HDFS模块的基础知识点,也算是对今天复习的内容进行一次总结,希望能够给想学 ...
- 我要进大厂之大数据Hadoop HDFS知识点(2)
01 我们一起学大数据 老刘继续分享出Hadoop中的HDFS模块的一些高级知识点,也算是对今天复习的HDFS内容进行一次总结,希望能够给想学大数据的同学一点帮助,也希望能够得到大佬们的批评和指点! ...
- 大数据核心知识点:Hbase、Spark、Hive、MapReduce概念理解,特点及机制
今天,上海尚学堂大数据培训班毕业的一位学生去参加易普软件公司面试,应聘的职位是大数据开发.面试官问了他10个问题,主要集中在Hbase.Spark.Hive和MapReduce上,基础概念.特点.应用 ...
- 大白话详解大数据hive知识点,老刘真的很用心(2)
前言:老刘不敢说写的有多好,但敢保证尽量用大白话把自己复习的内容详细解释出来,拒绝资料上的生搬硬套,做到有自己的了解! 1. hive知识点(2) 第12点:hive分桶表 hive知识点主要偏实践, ...
- 大白话详解大数据hive知识点,老刘真的很用心(3)
前言:老刘不敢说写的有多好,但敢保证尽量用大白话把自己复习的内容详细解释出来,拒绝资料上的生搬硬套,做到有自己的了解! 1. hive知识点(3) 从这篇文章开始决定进行一些改变,老刘在博客上主要分享 ...
- 大数据 - Zookeeper
Zookeeper 1. Zookeeper概念简介: Zookeeper是一个分布式协调服务:就是为用户的分布式应用程序提供协调服务 A.zookeeper是为别的分布式程序服务的 B.Zooke ...
随机推荐
- 自定义view的drawRoundRect模拟进度条
主要方法发介绍 1:drawRoundRect参数介绍 drawRoundRect(l,t,r,b,rx,ry,paint)里面的参数可以有两种: 1:前四个参数(l,t,r,,b)分别是矩形左边距离 ...
- Anderson《空气动力学基础》5th读书笔记 第1记——流动相似性
在飞机真正上天之前,我们常常需要制作出缩小版的模型放在风洞中吹呀吹,尽可能地模拟真实飞行中的参数,这时我们就需要实现流动相似性,这便是本记要讲的. 文章目录 一.流动相似性的标准 二.流动相似性的应用 ...
- Pytest学习(三) - setup和teardown的使用
一.前言 从文章标题可以看出,就是初始化和释放的操作,根据我的java习惯来学习pytest,个人感觉没差太多,理解上也不是很难. 哦,对了,差点跑题了,这个框架是基于Python语言的,在学习的时候 ...
- 使用MediaRecorder录音
Android提供了两个API用于录音的实现:MediaRecorder 和AudioRecord. MediaRecorder:录制的音频文件是经过压缩后的,需要设置编码器.并且录制的音频文件可以用 ...
- Pytorch中cudnn版本查询
问题: Disable or able cudnn,查询版本. Disable cudnn for batch_norm: (See: @Microsoft / human-pose-estimati ...
- ActiveMQ第一个示例
首先先安装ActiveMQ:https://www.cnblogs.com/hejianliang/p/9149590.html 创建Java项目,把 activemq-all-5.15.4.jar ...
- 如何给office2019安装visio2019
1.关于版本,如果你的office2019推荐安装2019visio,2019office只有安装2019visio才不会互斥 下载地址是百度网盘传送,也要安装教程,可是里面的激活器用不了 https ...
- ansible-hoc命令行
ansible一种开源的自动化工具 ansible: hoc命令行: 是一款开源的自动化运维工具 python paramiko #模拟ssh协议批量管理主机 jinja2 #模板语言,主要用来传递变 ...
- Azure Data Factory(一)入门简介
一,引言 今天分享一个新的Azure 服务-----Azure Data Factory(Azure 数据工厂),怎么理解,参考根据官方解释-----数据工厂解释:大数据需要可以启用协调和操作过程以将 ...
- Spring Cloud Alibaba 基础
Spring Cloud Alibaba 基础 什么是Spring Cloud Alibaba 这里我们不讲解Spring Cloud 和 Spring Cloud Alibaba 的关系,大家自己查 ...