一、Zookeeper集群搭建及基本使用

1.centOs虚拟机三台 ,集群最好是奇数台容灾性好一些,由于允许不过半节点宕机,例五台可以挂掉两台,四台可以挂掉一台。简单说就是过半可用。

2.Zookeeper官方 http://zookeeper.apache.org/

二、zk安装

1.Wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz

2. tar -xvzf zookeeper-3.4.5.tar.gz

目录为/opt/bigdata/zookeeper-3.4.5

3.在/etc/profile 里配置:

JAVA_HOME ZOOKEEPER_HOME PATH

4.创建data目录和myid

创建data目录:$ZOOKEEPER/data,即/opt/bigdata/zookeeper-3.4.5/data

创建myid: /opt/bigdata/zookeeper-3.4.5/data/myid

myid存server的id,可以是1,2,3…,必须唯一

三、zk配置

创建文件 $ZOOKEEPER/conf/zoo.cfg

修改zoo.cfg,增加如下:

dataDir=/opt/bigdata/zookeeper-3.4.5/data

clientPort=2181

initLimit=10

syncLimit=5

tickTime=2000

server.1=master:2888:3888

server.2=slave1:2888:3888

server.3=slave2:2888:3888

其中server.myid代表组成整个服务的机器,当服务启动时,会在数据目录下查找这个文件myid,这个文件中存有服务器的号码。

四、启动

zkServer.sh start 启动 三台顺序分别启动后第二台为leader其他为follower代表成功(选举机制)

zkServer.sh status 查看状态

zkServer.sh status 停止

Master/slave 架构

Leader选举,Leader负责整个集群Client消息接收,分发给每个Flower。

Client操作:

在任一台机器上

zkCli.sh -server master:2181

五、zk的优点

简单易用,能够很好的解决分布式框架在运行中出现的协调问题。例如master主备切换、节点的上下线感知。

六、zk的HA方案

话不多说,上图

1.在我们配置HA高可用之后,HA会给我们产生zkfc(基于zookeeper实现的failover controller)进程,启动后,两个zkfc都会往zk集群中注册(此时还不知道哪个namenode为active)

2.我们根据zkfc的注册顺序,即谁先注册成功谁成为active节点。

3.这时active的zkfc会在zk集群中生成一个临时节点,而standby的zkfc监听着这个临时节点

假如因为网络故障zk集群和active namenode连接不上则监听器会将监听到的事件通知给standby的zkfc,standby的zkfc触发监听的回调

1)首先判断active的namenode是否真的和zk集群断开了连接

2)宕机的namenode则降级为standby namenode

3)监听到事件的standby namenode成为新的active namenode。

需要注意的是,当active namenode宕机的时候,standby namenode收到切换的请求时,不是立即切换的,首先会做两件事。

1.通过SSH远程指令,杀掉active namenode 的进程,但是如果不仅仅是namenode挂了,而是整个机器挂了,那发送的指令就不会有反应,也不会有反馈信息。

2.那么如果SSH没有响应,则帮用户调用一个用户所指定的脚本,脚本运行成功,则切换状态

七、监听器原理

1)首先要有一个 main()线程

2)在 main 线程中创建 Zookeeper 客户端,这时就会创建两个线程,一个负责网络连接

通信(connet),一个负责监听(listener)。

3)通过 connect 线程将注册的监听事件发送给 Zookeeper。

4)在 Zookeeper 的注册监听器列表中将注册的监听事件添加到列表中。

5)Zookeeper 监听到有数据或路径变化,就会将这个消息发送给 listener 线程。

6)listener 线程内部调用了 process()方法。

判断zk是否挂掉_Zookeeper入门学习第一天,zk集群简单介绍相关推荐

  1. Clickhouse入门学习、单机、集群安装部署

    参考:https://blog.csdn.net/qq_37933018/article/details/108019566 Clickhouse官网:https://clickhouse.tech/ ...

  2. Python入门学习(第一天)

    入门学习第一步: 1.安装python https://www.python.org/downloads/ 2.下载编辑器 推荐PyCharm Edu 3.打开编辑器新建一个python文件 4. 在 ...

  3. python零基础入门教程视频下载-Python零基础入门学习视频教程全42集,资源教程下载...

    课程名称 Python零基础入门学习视频教程全42集,资源教程下载 课程目录 001我和Python的第一次亲密接触 002用Python设计第一个游戏 003小插曲之变量和字符串 004改进我们的小 ...

  4. python基础教程视频教程百度云-Python零基础入门学习视频教程全42集百度云网盘下载...

    课程简介 Python零基础入门学习视频教程全42集百度云网盘下载 课程目录 042魔法方法:算术运算 041魔法方法:构造和析构 040类和对象:一些相关的BIF 039类和对象拾遗 038类和对象 ...

  5. python基础教程百度云-Python零基础入门学习视频教程全42集百度云网盘下载

    课程简介 Python零基础入门学习视频教程全42集百度云网盘下载 课程目录 042魔法方法:算术运算 041魔法方法:构造和析构 040类和对象:一些相关的BIF 039类和对象拾遗 038类和对象 ...

  6. symfony入门学习资料之九:YAML格式介绍

    symfony入门学习资料之九:YAML格式介绍 由于EDUSOHO的项目原因,中断了对symfony框架的继续学习,今天回顾了前面的总结,总结了八节.从建立简单的页面.控制器.路由.模板等,甚至包括 ...

  7. Hadoop学习笔记—13.分布式集群中节点的动态添加与下架

    Hadoop学习笔记-13.分布式集群中节点的动态添加与下架 开篇:在本笔记系列的第一篇中,我们介绍了如何搭建伪分布与分布模式的Hadoop集群.现在,我们来了解一下在一个Hadoop分布式集群中,如 ...

  8. 尚硅谷大数据技术Zookeeper教程-笔记01【Zookeeper(入门、本地安装、集群操作)】

    视频地址:[尚硅谷]大数据技术之Zookeeper 3.5.7版本教程_哔哩哔哩_bilibili 尚硅谷大数据技术Zookeeper教程-笔记01[Zookeeper(入门.本地安装.集群操作)] ...

  9. Redis 学习笔记八:集群模式

    Redis 学习笔记八:集群模式 作者:Grey 原文地址: 博客园:Redis 学习笔记八:集群模式 CSDN:Redis 学习笔记八:集群模式 前面提到的Redis 学习笔记七:主从复制和哨兵只能 ...

最新文章

  1. WPF中如何将ListViewItem双击事件绑定到Command
  2. python入门要多久-初学者如何快速上手python入门要多久
  3. DPM(Deformable Parts Models)-----目标检测算法理解
  4. 高性能网站建设的最佳实践(二)
  5. OAuth2认证有一定的了解
  6. 科学证明夜猫子都死得早?稳住,事情不是这样的
  7. 同义反复,相似的表达
  8. Python 标准库 —— os 模块
  9. C++ 中 Windows 编程概述
  10. 14_按类别分页展示商品
  11. Win10 安装 JDK1.8 及配置环境变量
  12. 支付宝VS微信,谁在抄袭谁?
  13. python 隐藏excel的列和行
  14. matlab 变速不变调,使用GoldWave 轻松实现变速不变调
  15. 局域网流量监控_常见的企业电脑监控网络管理软件哪一款好呢?
  16. 【Google Chrome】打开本地html文件报错问题
  17. ADP(自适应动态规划)-值迭代
  18. 数据结构形象动态演示的网站
  19. 【演武厅】表达式求值实例
  20. Usb 声卡 linux,树莓派:使用usb声卡播放音乐

热门文章

  1. IDC:今年全球认知和人工智能系统支出将突破125亿美元
  2. BaaS API 设计规范
  3. sublime不认识python_Python3小白入门 Sublime Text3
  4. oracle scn与数据恢复,Oracle数据恢复:数据文件头的SCN与时间校验
  5. 用bbp公式计算pi_家用配电箱里设计几个回路合适?用这个公式,计算起来很方便...
  6. 计算机系统-电路设计01-非门电路
  7. Bootstrap-datetimepicker控件使用
  8. IntelliJ IDEA 2018 设置代码提示对大小写不敏感
  9. 微信小程序项目笔记以及openId体验版获取问题
  10. 网络编程之 keepalive(zz)