Zookeeper基础教程

news2024/11/29 12:56:07

Zookeeper基础教程

资料来源:Zookeeper Tutorial (tutorialspoint.com)

zookeeper就是Hadoop生态动物园的管理员

Zookeeper Tutorial

1. Zookeeper-概述

ZooKeeper是一种分布式协调服务,用于管理大型主机集群(large set of hosts)。在分布式环境中协调和管理服务是一个复杂的过程。ZooKeeper用它简单的架构和API解决了这个问题。ZooKeeper允许开发人员专注于核心应用逻辑,而不用担心应用的分布式特性。

ZooKeeper框架最初是在Yahoo!,以便以一种简单而稳健的方式访问他们的应用程序。后来,Apache ZooKeeper成为Hadoop、HBase和其他分布式框架使用的有组织服务的标准。例如,Apache HBase使用ZooKeeper来跟踪分布式数据的状态。本教程解释了ZooKeeper的基础知识,如何在分布式环境中安装和部署ZooKeeper集群,最后以使用Java编程和示例应用程序的几个示例结束。


在进一步讨论之前,了解一些关于分布式应用程序的知识是很重要的。因此,让我们从快速概述分布式应用程序开始讨论。

分布式应用

分布式应用程序可以在给定时间(同时)在网络中的多个系统上运行,通过它们之间的协调以快速有效的方式完成特定的任务。通常,非分布式应用程序(在单个系统中运行)需要数小时才能完成的复杂且耗时的任务,通过使用所有相关系统的计算能力,分布式应用程序可以在几分钟内完成。

通过将分布式应用程序配置为在更多系统上运行,可以进一步减少完成任务的时间。运行分布式应用程序的一组系统称为集群(Cluster),在集群中运行的每台机器称为节点(Node)。

分布式应用程序有两个部分,服务器(Server)和客户端(Client)应用程序。服务器应用程序实际上是分布式的,并且具有公共接口,因此客户机可以连接到集群中的任何服务器并获得相同的结果。客户机应用程序是与分布式应用程序交互的工具。如下图所示。

Distributed Application


分布式应用程序的优点

可靠性−单个或部分系统故障不会导致整个系统故障。

可扩展性-性能可以在需要时增加更多的机器,在应用程序的配置中进行微小的更改,而不会停机。

透明性-隐藏系统的复杂性,显示其作为一个单一的实体/应用程序。


分布式应用的挑战

竞态条件(Race condition)−:两台或两台以上的机器同时执行某项任务,而该任务在任何给定时间内实际上只需要一台机器来完成。例如,共享资源在任何给定时间只能由一台机器修改。聪明的你有没有想起操作系统的知识?(doge)

死锁−两个或多个操作无限期地等待对方完成。

不一致性−数据部分失效。


那么ZooKeeper存在的意义是什么?

Apache ZooKeeper是集群(一组节点)使用的服务,通过强大的同步技术在集群(一组节点)之间进行协调并维护共享数据。ZooKeeper本身就是一个分布式应用程序,为编写分布式应用程序提供服务。

ZooKeeper提供的常用服务有:

命名服务−通过名称识别集群中的节点。它类似于DNS,但针对的是节点。

配置管理−接入节点最新的系统配置信息。

集群管理−实时管理集群中节点的加入/退出和节点状态。

Leader选举−选举节点作为Leader进行协调。

锁定同步服务−数据修改时锁定。这种机制可以帮助您在连接其他分布式应用程序(如Apache HBase)时自动进行故障恢复。

高可靠性的数据注册表−即使一个或几个节点宕机,数据仍然可用。

分布式应用程序提供了很多好处,但也带来了一些复杂和难以破解的挑战。ZooKeeper框架提供了一个完整的机制来克服所有的挑战。使用故障安全同步方法(fail-safe synchronization approach)处理竞争条件和死锁。另一个主要缺点是数据不一致,ZooKeeper通过**原子性(atomicity)**解决了这个问题。


Zookeeper的优点

简单的分布式协调过程

同步−服务器进程间互斥协作。这个过程有助于在Apache HBase中进行配置管理。

有序的消息(Ordered Messages)

序列化−按照指定的规则对数据进行编码。确保应用程序始终如一地运行。这种方法可以在MapReduce中用于协调队列以执行正在运行的线程。

可靠性

原子性-数据传输完全成功或完全失败,但没有事务是部分的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1844400.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java实现俄罗斯方块-初始化游戏界面的JPanel

目录 技术实现: 2.初始化游戏界面; 2.1 什么是游戏界面 2.2 JPanel面板 2.3 流布局管理器【FlowLayout】 2.4 网络布局管理器 【GridLayout】 2.5 边界布局管理器 技术实现: 1.初始化游戏窗口; 2.初始化游戏界面&#xff…

解决navicat连接oracle19c数据库缺少oci.dll

下载oci.dll文件 搜索Oracle Instant Client Downloads Oracle Instant Client Downloads点击 Oracle Instant Client Downloads 超链接 根据自己的操作系统按需选择 以windows64位为例,下载 Version 19.23.0.0.0的OCI压缩包 解压到Navicat的安装根路径下&#xff…

基于SpringBoot校园食堂订餐管理系统

文章目录 系统运行图概要整体架构流程技术名词解释 系统运行图 概要 随着校园人口的增加和生活节奏的加快,校园食堂的订餐管理面临着诸多挑战,传统的人工点餐方式已经不能满足日益增长的需求和期望。因此,本论文旨在设计和实现一种基于Java的…

【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(十四)

课程地址: 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程,一套精通鸿蒙应用开发 (本篇笔记对应课程第 22 节) P22《21.ArkUI-实现摇杆功能》 本节我们将小鱼动画案例中的按钮控制改为摇杆控制,用来熟悉和巩固…

面向AI时代的软件开发新范式

作为一名软件开发者,有幸站在了AI时代的风口浪尖。在这篇博客中,我将分享我的个人看法,一起走向AI时代软件开发新范式。 首先,我们要明确软件开发活动产生的各种制品,都是人类知识的载体,也是人类文明的高级…

校园疫情防控健康打卡系统

摘 要 自疫情出现以来,全世界人民的生命安全和健康都面临着严重威胁。高校是我国培养人才的重要基地,其安全和稳定影响着社会的发展和进步。因此,各高校高度重视疫情防控工作,并在校园疫情防控中引入了健康打卡系统。本论文主要研…

Cookie-SameSite属性 前端请求不带cookie的问题解决方案

最近遇到了前端请求后端不带cookie的问题, 请求时header里面就是没有cookie 查看响应应该是这个问题 SameSite是一个cookie属性,用于控制浏览器是否在跨站点请求中发送cookie。它有三个可能的值: 1. Strict(严格模式&#xff09…

如何使用pwclient从社区邮件列表获取相关补丁

最近在调试Qualcomm的QCA2066 WiFi 6E平台,主控处理器信息如下所示: 6nm AMD APU CPU:Zen 2 4c/8t、2.4-3.5GHz(最高可达 448GFlops FP32) GPU:8 RDNA 2 CUs、1.6GHz(1.6 TFlops FP32&#xff0…

Tomcat配置详解

文章目录 一、配置文件介绍配置文件日志文件 二、组件组件分层和分类核心组件Tomcat处理请求过程URL对应关系 三、部署java程序手动部署搭建博客状态页 四、常见配置详解tomcat端口号安全配置管理虚拟主机配置Context配置 四、Tomcat Nginx动静分离 一、配置文件介绍 配置好环…

代码讲解——ssm+jsp+maven项目目录结构说明

1 applicationContext.xml 应用上下文配置 2 db.properties 数据库配置 3 log4j.properties日志配置 4 mybatis-config.xml mybatis配置 5 springmvc.xml springmvc配置

【ai】tx2-nx:安装深度学习环境及4.6对应pytorch

参考:https://www.waveshare.net/wiki/Jetson_TX2_NX#AI.E5.85.A5.E9.97.A8 英伟达2021年发布的的tritionserver 2.17 版本中,backend 有tensorflow1 和 onnxruntime ,他们都是做什么用的,作为backend 对于 triton 推理server意义是什么,是否应该有pytorch? Triton Infer…

新版二开微信发卡小程序源码卡密系统/支持流量主

新版二开微信发卡小程序源码卡密系统支持流量主。裂变扩展多种领取模式二次开发的发卡小程序源码,其后台采用PHP编写,支持用户通过付费购卡或者观看视频广告领取卡密。 该小程序还支持流量主,因为功能需要,就进行了二开&#xff…

LeetCode 热题100 --哈希

哈希 哈希,有限空间映射一个无限的空间。在空间内,有序化进行快速查询。 用空间换时间。 1.两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组…

如何使用ChatGPT辅助设计工作

文章目录 设计师如何使用ChatGPT提升工作效率?25个案例告诉你!什么是 prompt?咨询信息型 prompt vs 执行任务 prompt编写出色 prompt 的基本思路撰写 prompt 的案例和技巧1、将 ChatGPT 视作专业人士2、使用 ChatGPT 创建表单3、使用 ChatGPT…

论文学习 Learning Robust Representations via Multi-View Information Bottleneck

Code available at https://github.com/mfederici/Multi-View-Information-Bottleneck 摘要:信息瓶颈原理为表示学习提供了一种信息论方法,通过训练编码器保留与预测标签相关的所有信息,同时最小化表示中其他多余信息的数量。然而&#xff0…

驶向未来,智慧加油新体验——我们的加油App开发之旅

一、引言 在数字化与智能化交织的时代,每一次出行都呼唤着更加高效、便捷的服务。为了满足广大车主对加油服务的更高需求,我们倾力打造了一款创新的加油App,旨在为您的驾驶生活带来前所未有的智慧新体验。 二、洞察需求,创新服务…

torch.optim 之 Algorithms (Implementation: for-loop, foreach, fused)

torch.optim的官方文档 官方文档中文版 一、Implementation torch.optim的官方文档在介绍一些optimizer Algorithms时提及它们的implementation共有如下三个类别:for-loop, foreach (multi-tensor), and fused。 Chat-GPT对这三个implementation的解释是&#xf…

光伏设计需要设计哪些方面?

光伏设计是一项复杂而关键的工作,它涉及到多个方面的综合考虑,以确保光伏系统的效率、安全性和可持续性。下面将详细探讨光伏设计需要设计的几个方面。 一、系统规模与布局 光伏设计的首要任务是确定系统的规模和布局。这包括评估安装地点的光照资源、可…

工业智能网关如何与设备连接?天拓四方

随着工业4.0时代的来临,智能化、自动化已成为工业生产的标配。在这样的背景下,工业智能网关应运而生,成为连接工业设备、实现数据交互与管理的关键节点。本文将阐述工业智能网关如何与设备连接,旨在为读者提供一套清晰、实用的解决…

实现Hexo新建博文时自带随机默认封面

文章目录 1. Hexo模版2. 准备封面和缩略图3. 新建博文脚本windowsLinux 4. 效果展示 前提是选择的主题在Front-matter中支持cover和thumbnail,主题之间对于这两个属性的定义可能并不用,如果不适用,只需要根据逻辑修改脚本即可。 1. Hexo模版…