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)的更多相关文章

  1. 我要进大厂之大数据ZooKeeper知识点(2)

    01 我们一起学大数据 接下来是大数据ZooKeeper的比较偏架构的部分,会有一点难度,老刘也花了好长时间理解和背下来,希望对想学大数据的同学有帮助,也特别希望能够得到大佬的批评和指点. 02 知识 ...

  2. 我要进大厂之大数据MapReduce知识点(2)

    01 我们一起学大数据 今天老刘分享的是MapReduce知识点的第二部分,在第一部分中基本把MapReduce的工作流程讲述清楚了,现在就是对MapReduce零零散散的知识点进行总结,这次的内容大 ...

  3. 我要进大厂之大数据MapReduce知识点(1)

    01 我们一起学大数据 老刘今天分享的是大数据Hadoop框架中的分布式计算MapReduce模块,MapReduce知识点有很多,大家需要耐心看,用心记,这次先分享出MapReduce的第一部分.老 ...

  4. 我要进大厂之大数据Hadoop HDFS知识点(1)

    01 我们一起学大数据 老刘今天开始了大数据Hadoop知识点的复习,Hadoop包含三个模块,这次先分享出Hadoop中的HDFS模块的基础知识点,也算是对今天复习的内容进行一次总结,希望能够给想学 ...

  5. 我要进大厂之大数据Hadoop HDFS知识点(2)

    01 我们一起学大数据 老刘继续分享出Hadoop中的HDFS模块的一些高级知识点,也算是对今天复习的HDFS内容进行一次总结,希望能够给想学大数据的同学一点帮助,也希望能够得到大佬们的批评和指点! ...

  6. 大数据核心知识点:Hbase、Spark、Hive、MapReduce概念理解,特点及机制

    今天,上海尚学堂大数据培训班毕业的一位学生去参加易普软件公司面试,应聘的职位是大数据开发.面试官问了他10个问题,主要集中在Hbase.Spark.Hive和MapReduce上,基础概念.特点.应用 ...

  7. 大白话详解大数据hive知识点,老刘真的很用心(2)

    前言:老刘不敢说写的有多好,但敢保证尽量用大白话把自己复习的内容详细解释出来,拒绝资料上的生搬硬套,做到有自己的了解! 1. hive知识点(2) 第12点:hive分桶表 hive知识点主要偏实践, ...

  8. 大白话详解大数据hive知识点,老刘真的很用心(3)

    前言:老刘不敢说写的有多好,但敢保证尽量用大白话把自己复习的内容详细解释出来,拒绝资料上的生搬硬套,做到有自己的了解! 1. hive知识点(3) 从这篇文章开始决定进行一些改变,老刘在博客上主要分享 ...

  9. 大数据 - Zookeeper

    Zookeeper 1.  Zookeeper概念简介: Zookeeper是一个分布式协调服务:就是为用户的分布式应用程序提供协调服务 A.zookeeper是为别的分布式程序服务的 B.Zooke ...

随机推荐

  1. centos8平台安装zookeeper3.6集群

    一,规划三台zk服务器构成集群 ip:172.18.1.1 机器名:zk1 对应myid: 1 ip:172.18.1.2 机器名:zk2 对应myid: 2 ip:172.18.1.3 机器名:zk ...

  2. .net core 3.1 vs2019报HTTP Error 500.30 - ANCM In-Process Start Failure

    vs启动报此错误的话查看自己的程序是3.1.1还是3.1.2.解决防范安装高版本的重启

  3. TNS-12541 TNS no listener

    转载:https://blog.csdn.net/haha_201510/article/details/88119587 centOS环境下的解决方案: 查看监听状态lsnrctl status 如 ...

  4. IDEA2020.2版本无法开启KDE全局菜单的解决方案

    IDEA2020.2版本无法开启KDE全局菜单的解决方案 前言 :更新了2020.2之后全局菜单一直不生效,一直找不到解决的办法,就退回了2020.1,今天又试了一次,成功解决全局菜单显示问题. 之前 ...

  5. pyqt设置窗口图标

    import sys from PyQt5.QtWidgets import QMainWindow,QApplication from PyQt5.QtGui import QIcon ''' 窗口 ...

  6. unordered_set

    用哈希表实现的 https://blog.csdn.net/dream_you_to_life/article/details/46785741

  7. 基于Spring读写分离

    为什么是基于Spring的呢,因为实现方案基于Spring的事务以及AbstractRoutingDataSource(spring中的一个基础类,可以在其中放多个数据源,然后根据一些规则来确定当前需 ...

  8. Go之NSQ简介,原理和使用

    NSQ简介 NSQ是Go语言编写的一个开源的实时分布式内存消息队列,其性能十分优异. NSQ 是实时的分布式消息处理平台,其设计的目的是用来大规模地处理每天数以十亿计级别的消息.它具有分布式和去中心化 ...

  9. requests请求获取cookies的字典格式

    python中requests请求的cookies值一般是jar包,如何将cookies值改为字典,此处运用了方法.举例如下: import  requests response = requests ...

  10. java log4j 的一个bug

    java项目中使用log4j记录日志几乎成了标配, 最近一个项目中出了个问题  现象是这样的:  不连vpn程序一切正常,连上VPN启动程序 直接异常退出, 错误日志直接指向了 log4j 库 org ...