大数据开发教程——ZooKeeper分布式协调组件

2023-11-17

ZooKeeper是什么?

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase,Flink的重要组件。中文名:动物管理员
它是一个为分布式应用提供一致性服务的软件。

ZooKeeper提供的功能包括:

配置维护、域名服务、分布式同步、组服务等。zookeeper简化了分布式应用的 管理和部署,开发人员只需要专注于业务的开发,而不用担心应用服务的分布式特性。
Apache ZooKeeper致力于开发和维护开源服务器,以实现高度可靠的分布式协调服务。

ZooKeeper网址:

官网地址: http://ZooKeeper.apache.org/
官网快速开始地址: Because Coordinating Distributed Systems is a Zoo
官网API地址: http://ZooKeeper.apache.org/doc/r3.4.10/api/index.html

ZooKeeper典型应用场景

  • 提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。
命名服务
  • 在分布式环境下,经常需要对应用/服务进行统一命名,便于识别。
统一配置管理
  • 在分布式环境下,配置文件同步很常见。
  • 要求在一个集群中,所有节点的配置信息是一致的,对配置文件修改后,能够快速同步 到各个节点上。
  • 配置文件内容可以给zookeeper进行管理,将配置信息写到znode,然后通过客户端监听 znode
集群管理
  • Zookeeper可以实现实时监控节点的状态变化
  • NameNode的HA机制就是基于Zookeeper来实现的
  • HBase的HA也是基于Zookeeper
  • Flink里面的心跳检车也用到Zookeeper
分布式锁

有了 ZooKeeper 的一致性文件系统,锁的问题变得容易。锁服务可以分为两三类
一个是写锁,对写加锁,保持独占,或者叫做排它锁,独占锁
一个是读锁,对读加锁,可共享访问,释放锁之后才可进行事务操作,也叫共享锁
一个是控制时序,叫时序锁
对于第一类,我们将 ZooKeeper 上的一个znode看作是一把锁,通过 createznode() 的方式来实 现。所有客户端都去创建 /distribute_lock 节点,最终成功创建的那个客户端也即拥有了这把 锁。用完删除掉自己创建的 /distribute_lock 节点就释放出锁。
对于第二类,/distribute_lock 已经预先存在,所有客户端在它下面创建临时顺序编号目录节 点,和选 Master 一样,编号最小的获得锁,用完删除,依次有序。

队列管理
  • 两种类型的队列:
    1、同步队列:当一个队列的成员都聚齐时,这个队列才可用,否则一直等待所有成员到
    达。
    2、先进先出队列:队列按照 FIFO 方式进行入队和出队操作。
  • 第一类,在约定目录下创建临时目录节点,监听节点数目是否是我们要求的数目。
  • 第二类,和分布式锁服务中的控制时序场景基本原理一致,入列有编号,出列按编号。
  • 缺点:zookeeper不太适合存储大量的数据和支持高频的数据读写。
  • kafka0.8版本版本之前offset是保存在zookeeper的,0.8以上的版本是保存在kafka自己的topic(__consumer)

ZooKeeper集群安装

下载地址

下载地址:http://mirrors.hust.edu.cn/apache/zookeeper/
版本号:zookeeper-3.4.14.tar.gz

解压缩安装到自己的安装目录
命令:tar -zxvf zookeeper-3.4.14.tar.gz -C ../install/
修改配置文件【集群参数配置】
第一步:复制配置文件:
cp zoo_sample.cfg zoo.cfg 
vi zoo.cfg
第二步:修改配置文件 
tickTime=2000 
initLimit=10 
syncLimit=5
dataDir=/root/install/zookeeper-3.4.14/data 
dataLogDir=/root/install/zookeeper-3.4.14/log 
clientPort=2181
server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888 
server.3=hadoop3:2888:3888
第三步:分发安装包到其他节点
scp -r zookeeper-3.4.14/ hadoop2:/root/install/ 
scp -r zookeeper-3.4.14/ hadoop3:/root/install/
第四步:添加服务器id
在dataDir指定的数据目录里面新建一个文件,文件名叫myid,里面存放的内容就是服务器的server.id
hadoop1 echo 1 > myid
hadoop2 echo 2 > myid
hadoop3 echo 3 > myid

免费获取就业指导/面试技巧/技术提升

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大数据开发教程——ZooKeeper分布式协调组件 的相关文章

  • docker搭建hadoop hdfs完全分布式集群

    1 制作hadoop镜像 参见 https www cnblogs com rmxd p 12051866 html 该博客中只参考制作镜像部分 固定IP及启动集群的部分应该跳过 这里注意 在做好的镜像里 要安装 which 工具 否则在执
  • 大数据笔记--ELK(第一篇)

    一 ELK介绍 1 什么是ELK ELK 是elastic公司提供的一套完整的日志收集以及展示的解决方案 是三个产品的首字母缩写 分别是ElasticSearch Logstash 和 Kibana 1 1 E ELASTICSEARCH
  • 大数据之hive(数据仓库工具)的分组和分区操作

    注 在对hive的概念 优缺点 安装部署和参数配置在之后再进行总结 本小节主要对hive中的分组和分区进行总结 一 分组 1 group by语句 group by通常和聚合函数一起使用 按照一个或者多个列进行分组 然后对每个组进行聚合操作
  • java脚本引擎Groovy实战

    前言 互联网时代随着业务的飞速发展 不仅产品迭代 更新的速度越来越快 个性化需求也是越来越多 如何快速的满足各种业务的个性化需求是我们要重点思考的问题 我们开发的系统如何才能做到热部署 不重启服务就能适应各种规则变化呢 实现业务和规则的解耦
  • Zookeeper(三)—分布式锁实现

    一 独占锁原理 独占锁是利用zk同一目录下不能创建多个相同名称的节点这个特性 来实现分布式锁的功能 竞争锁的分布式系统 都在zk根目录下创建一个名为lock的节点 创建节点成功的系统 说明抢到了这把锁 没有创建成功的系统 说明这个节点已经被
  • SpringCloud使用Zookeeper作为服务注册发现中心

    本篇文章主要记录SpringCloud使用Zookeeper作为服务注册发现中心 通过服务提供者和消费者为例 来真正掌握zk注册中心 目录 一 搭建服务提供者 1 创建cloud provider payment8004项目 2 修改配置
  • Kafka 权威指南

    Kafka 权威指南 这本书于 2021 年看完 2022 年又看了一遍 感觉书读百遍 其义自现 这本书侧重于 Kafka 的理论知识 虽然书有点老 但是其中关于 Kafka 的基础知识的章节讲得确实不错 适合学习 Kafka 的新手以及
  • Springboot结合Redis实现分布式定时任务

    一 背景 之前分享过分布式定时任务的技术选型方案 分布式定时任务技术选型方案 个人青睐xxl job 分享了搭建接入流程 xxl job搭建方案 本次项目需求较为简单 同时时间紧张 下面介绍利用Redis锁实现分布式定时任务的方案 二 Sc
  • 2023测试工程师核心软技能「情绪管理」

    大家好呀 我是小码哥 我之前经常提到一句话 大多数时候所谓的 技术之玻璃天花板 其实只是缺乏软技能而已 所以粉丝朋友们 我们除了需要关注技术 更需要注重软技能的提高 关于软技能相关的文章 之前写过学习方法 职业规划 时间管理 项目管理 团队
  • 分布式数字身份DID简介(五)DID的应用

    在上一篇文章中 我们给出了一种零知识证明的方法 解决用户身份属性的隐私问题 下面我们再来谈谈基于DID技术 我们都能在什么场景去应用 01 无密码安全登录 这个使用场景大家应该都很熟悉了 就类似于微信扫码登录 当我们要注册或者登录一个网站时
  • 在异构系统中学习应用的流迭代分布式编码计算研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现
  • 基于一致性理论的孤岛微电网分布式控制策略研究(Simulink仿真实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 2 1 仿真搭建 2 2 优化控制
  • MQ - KAFKA 高级篇

    kafak是一个分布式流处理平台 提供消息持久化 基于发布 订阅的方式的消息中间件 同时通过消费端配置相同的groupId支持点对点通信 适用场景 构造实时流数据管道 用于系统或应用之间可靠的消息传输 数据采集及处理 例如连接到一个数据库系
  • RabbitMQ避免重复消费

    在Java中 可以使用消息队列来实现消息的异步处理 其中常用的消息队列有 RabbitMQ ActiveMQ Kafka 等 什么是幂等性 幂等性是指无论操作执行多少次 都是得到相同的结果 而不会产生其他副作用 在rabbitMQ中 什么是
  • 不会做项目惨遭部门领导批评,连刷35天分布式小册轻松拿下

    互联网发展到今天 用户数量越来越多 产生的数据规模也越来越大 应用系统必须支持高并发访问和海量数据处理的需求 对比集中式架构 分布式系统由于具有可扩展性 可以动态扩展服务和存储节点 使用廉价的机器构建高性能的服务 更适合如今的互联网业务 分
  • 各种不同语言分别整理的拿来开箱即用的8个开源免费单点登录(SSO)系统

    各种不同语言分别整理的拿来开箱即用的8个开源免费单点登录 SSO 系统 单点登录 SSO 是一个登录服务层 通过一次登录访问多个应用 使用SSO服务可以提高多系统使用的用户体验和安全性 用户不必记忆多个密码 不必多次登录浪费时间 下面推荐一
  • 消息队列选型:Kafka 如何实现高性能?

    在分布式消息模块中 我将对消息队列中应用最广泛的 Kafka 和 RocketMQ 进行梳理 以便于你在应用中可以更好地进行消息队列选型 另外 这两款消息队列也是面试的高频考点 所以 本文我们就一起来看一下 Kafka 是如何实现高性能的
  • SpringCloud Config分布式配置中心

    文章目录 代码地址 简介 与GitHub整合配置 项目整合 测试 Config客户端配置与测试 测试 Config客户端之动态刷新 测试
  • 2024年华为Harmony OS走到新里程碑:取代iOS成为国内第二大智能手机操作系统

    前言 如果要问2024年最火的技术是什么 那鸿蒙开发必须占据一些位置 HarmonyOS是华为自主研发的物联网操作系统 经历四年多的发展已构建起全新的智慧生态体系 彻底改变了智能终端的交互方式 当时鸿蒙生态的智能设备已超过7亿台 同时还带来
  • RabbitMQ环境配置

    文章目录 安装Erlang 安装RabbitMQ 安装Erlang 下载地址 http erlang org download otp win64 25 3 2 7 exe 安装RabbitMQ 下载地址 https www rabbitm

随机推荐

  • Linux下Docker安装mysql

    1 下载mysql镜像 访问 MySQL 镜像库地址 https hub docker com mysql tab tags 也可以用命令查看可用版本 docker search mysql 下载mysql镜像 默认下载最新稳定版 dock
  • C语言中putchar()函数的使用

    今天教C语言中的输入输出语句 对函数putchar 函数有些好奇 难道就只能输出char型的数据么 带着这样的疑问 在环境上进行了验证 验证结果还蛮有意思 共享一下 当我们定义一个变量a 并给a赋予0 255的值 很显然没有问题 如代码 i
  • ERP订单管理的操作与设计--开源软件诞生19

    赤龙ERP订单模块讲解 第19篇 用日志记录 开源软件 的诞生 点亮星标 祈盼着一个鼓励 博主开源地址 码云 https gitee com redragon redragon erp GitHub https github com red
  • GC算法原理

    JVM 垃圾回收原理 对于JVM的垃圾收集 GC 这是一个作为Java开发者必须了解的内容 那么 我们需要去了解哪些内容呢 其实 GC主要是解决下面的三个问题 哪些内存需要回收 什么时候回收 如何回收 回答了这三个问题 也就对于GC算法的原
  • sudo堆缓冲区溢出提权漏洞(CVE-2021-3156)

    0x01 漏洞描述 这个漏洞被披露于2021年1月26日 漏洞的载体是我们常用的sudo命令 当sudo通过 s或 i命令行选项在shell模式下运行命令时 它将在命令参数中使用反斜杠转义特殊字符 但使用 s或 i标志运行sudoedit时
  • CTF MISC解题思路BUUCTF MISC9-16刷题

    1 文件中的秘密 查看文件属性备注 flag 870c5a72806115cb5439345d8b014396 2 wireshark 使用wireshark打开文件 菜单 编辑 查找分组 搜索关键字flag 在数据包中找到flag 3 L
  • 量化交易系统框架

    转自 https www cnblogs com huangfuyuan category 1290537 html
  • 华为OD机试 - 最大花费金额(Python)

    题目描述 双十一众多商品进行打折销售 小明想购买自己心仪的一些物品 但由于受购买资金限制 所以他决定从众多心仪商品中购买三件 而且想尽可能的花完资金 现在请你设计一个程序帮助小明计算尽可能花费的最大资金数额 输入描述 输入第一行为一维整型数
  • 【Git CMD】Git常用命令总结

    目录 0 git的工作区 暂存区 本地仓库和远程仓库 0 1 图解 0 2 解析 1 本地仓库 1 1 创建版本库 1 2 分支 1 2 1 查看本地仓库的分支信息 1 2 2 创建分支 1 2 3 切换分支 1 2 4 重命名分支 1 2
  • win10计算机无访问权限,win10系统提示无internet访问权限怎么办

    原标题 win10系统提示无internet访问权限怎么办 大家好 今天分享一篇来自小白系统官网 xiaobaixitong com 的图文教程 win10系统提示无internet访问权限怎么办呢 很多朋友反映在使用电脑的时候出现没有网络
  • 【C语言篇】数组作为函数参数

    一 一维数组作为函数参数 1 数组名当做函数实际参数 也是值传递 不过是传递的地址而已 include
  • adworld-web2

    web2 GFSJ0627积分 2金币 2 91最佳Writeup由 Robert Wei 提供 收藏 反馈 难度 2 方向 Web 题解数 108 解出人数 10185 题目来源 CTF 题目描述 解密 题目场景 http 61 147
  • SSM到底学了什么--SSM回顾

    SSM回顾 学习完MyBatis Spring和SpringMVC 个人进行一下回顾 看看还能记住多少 重点的地方一定要闭着眼睛都要写出来的 前面的笔记做得很详细 那里忘了点哪里哈哈哈哈 MyBatis框架笔记 Spring框架笔记 Spr
  • 超详细的Linux环境下使用git上传代码教程(gitee版)

    git是一个版本控制器 我们使用它上传我们以前写过的代码给他进行托管 更为方便以后找到 同时也方便我们找到我们每次更改了什么 创建仓库 使用 git 命令行 Linux下的操作 git三板斧 在远端修改了文件push不了怎么办 删除仓库已提
  • 29岁总结复盘

    1 qt界面图片上加文字 2 mysql查询最新一百条数据 3 线程操作数据库死锁了怎么做 4 qt元 连接第五个参数 5 项目框架 整体把控 6 opencv 7 视频采集卡 8 做事要有深度 这才是你的价值 可以说计算机领域多数情况下就
  • 一个简单的WebService实例

    WebService在 NET平台下的作用是在不同应用程序间共享数据与数据交换 要达到这样的目标 Web services要使用两种技术 XML 标准通用标记语言下的一个子集 XML是在web上传送结构化数据的伟大方式 Web servic
  • 安装配置qt_eventdispatcher_libevent

    QT默认的是使用select模型的 这种轮询方式非常慢 在高并发连接 我们需要epoll才能发挥linux服务器的性能 安装qt eventdispatcher libevent 下载安装包后 解压 找到src目录 用Qt打开pro工程 然
  • matplotlib绘图系列----pie饼图

    使用plt pie绘制饼图 绘制饼图我们用matplotlib pyplot pie 我们先看下他的基本参数 下面结合实例演示基本用法 coding utf 8 加入中文显示 import matplotlib pyplot as plt
  • QGIS开发--小例子

    文接上篇 上次说到QGIS开发小插件的问题 讲了插件怎么开发 开发好了放哪个地方 界面怎么设置 代码怎么关联 并且遗留了一些小问题 就是怎么添加多个界面 怎么实现界面跳转 这篇文章主要就是解决这个问题的 这次内容有两个 1 界面关联 跳转
  • 大数据开发教程——ZooKeeper分布式协调组件

    ZooKeeper是什么 ZooKeeper是一个分布式的 开放源码的分布式应用程序协调服务 是Google的Chubby一个开源的实现 是Hadoop和Hbase Flink的重要组件 中文名 动物管理员 它是一个为分布式应用提供一致性服