【云计算与大数据技术】分布式协同系统Chubby锁、ZooKeeper在HDFS中的使用讲解(图文解释 超详细)

news2024/11/18 9:26:58

阿里云Kuafa RPC系统

夸父(Kuafu)是飞天平台内核中负责网络通信的模块,它提供了一 个 RPC 的接口 , 简化编写基于网络的分布式应用

夸父的设计目标是提供高可用(7×24小时)、大吞吐量(Gigabyte)、高效率、易用(简明 API、多种协议和编程接口)的 RPC服务

Hadoop IPC的应用

在 Hadoop系统中,Hadoop IPC为 HDFS、MapReduce提供了高效的 RPC 通信机制

Hadoop IPC 的 Server 端相对比较复杂, 包括 Listener、Reader、Handler 和 Responder 等多种类型的线程

一、分布式协同系统

当前的大规模分布式系统涉及大量的机器,这些机器之间需要进行大量的网络通信 以及各个节点之间的消息通信协同

1:Chubby锁服务

 Chubby是Google公司研发的针对分布式系统协调管理的粗粒度服务,一个Chubby实例大约可以负责一万台4核CPU机器之间对资源的协同管理,这种服务的主要功能是让众多客户端程序进行相互之间的同步,并对系统环境或资源达成一致的认知

Chubby的理论基础是 Paxos(一致性协议),Paxos是在完全分布式环境下不同客户端能够通过交互通信并投票对于某个决定达成一致的算法 

Chubby 的设计目标基于以下几点 : 高可用性 、高可靠性 、支持粗粒度的 建议性锁服务、支持小规模文件直接存储

Chubby整体架构共有5台服务器,其中一个是主服务器,客户端与服务器之间使用RPC交互,内其他服务器纯粹作为主服务器不可用后的替代品,而ZooKeeper的多余服务器均是提供就近服务的,也就是服务器会根据地理位置与网络情况来选择对哪些客户端给予服务

2:ZooKeeper

ZooKeper是 Yahoo! 开发的一套开源高吞吐分布式协调系统

分布式应用中的各节点可以通过ZooKeeper这个第三方来确保双方的同步,比如一个节点是发送,另一个节点是接收,但发送节点需要确认接收节点成功收到这个信息,因而就可以通过与一个可靠的第三方交互来获取接收节点的消息接收状态

ZooKeeper 是由多台同构服务器构成的一个集群 ,共用信息存储在集群系统 中,共用信息采用树形结构来存储

3:阿里云Nuwa协同系统

女娲(Nuwa)系统为飞天提供高可用的协调服务(Coordination Service),是构建各类分布式应用的核心服务

女娲系统基于类 Paxos 协议 ,由多个女娲 Server 以类似文件系统的树形结构存储数据,提供高可用、高并发用户请求的处理能力

4:ZooKeeper在HDFS高可用方案中的使用

HDFS由三个模块构成,分别包括Client,NameNode,DataNode

NameNode负责管理所有的DataNode节点,保存block和DataNode之间的对应信息,Client读取文件和写入文件都需要NameNode节点的参与,因此NameNode发挥着至关重要的作用。

维护HDFS高可用基于以下两个目的

1:在出现NameNode节点故障时HDFS仍然可以对外提供数据的读取和写入服务

2:HDFS会出现版本的更新迭代,以保证HDFS在更新过程中仍然可以对外提供服务

一种解决HDFS高可用方法是采用ZK Failover Controller的方法 具体结构如下

 采用ZooKeeper设计HDFS高可用方案基于以下几点

1:提供了小规模的任意数据信息的强一致性

2:可以在ZooKeeper集群中创建一个临时的znode节点,当创建该znode节点时的Client失效时,该临时znode节点会自动删除

3:能够监控ZooKeeper集群中的一个znode节点的状态发生改变 并被异步通知 

创作不易 觉得有帮助请点赞关注收藏~~~

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

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

相关文章

【软件测试】资深测试的建议。初入测试行的小伙伴,准备起航吧......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 大部分初级的岗位&a…

Java面试题总结-抽象类和接口的区别

抽象类是用来捕捉子类的通用特性的。接口是抽象方法的集合。 从设计层面来说,抽象类是对类的抽象,是一种模板设计,接口是行为的抽象,是一种行为的规范。 想要了解抽象类和接口的区别,我们首先要想清楚抽象类和接口的相…

Word控件Spire.Doc 【超链接】教程(3):在C#中查找word文档中的超链接

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转…

服务端监控工具:Nmon使用方法

目录:导读 一、认识nmon 二、检查安装环境 三、nmon下载安装 四、运行nmon 五、采集数据 总结 写在最后 一、认识nmon 1、简介 nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具,它能在系统运行过程中实时地捕捉系统资源的使用情…

再学C语言1:开发环境

重新把C语言梳理一遍,学习在VSCode中进行C语言编程。 因此第一步是把环境配置起来。 步骤一:下载、安装VSCode 官网下载即可,地址:https://code.visualstudio.com/Visual Studio Code is a code editor redefined and optimize…

Docker:docker安装nginx

目录 一、容器之间相互通信 1、两个容器在同一网段 2、两个容器在不同网段 二、安装Nginx 1.nginx是什么 2. 安装nginx 三、部署前端项目 2.nginx.conf讲解 一、容器之间相互通信 1、两个容器在同一网段 查看docker中已安装的所有网络 docker network ls 查看自定义网络myn…

springboot+java农家乐系统-住宿-美食-活动vue

目 录 摘 要 1 Abstract 1 1 系统概述 4 1.1 概述 4 1.2课题意义 4 1.3 主要内容 4 2 系统开发环境 5 2.1 JAVA简介 5 2.2 B/S架构 5 2.3系统对MySQL数据库的两种连接方式 6 2.4 MySql数据库 6 3 需求分析 7 3.1技术可行性&#xff1a…

交互式分割: Interactive Object Segmentation with Inside-Outside Guidance

论文:https://ieeexplore.ieee.org/document/9157733 代码: https://github.com/shiyinzhang/Inside-Outside-Guidance 思想概述 作者利用画取一个BBOX 作为前、背景的快速区分,同时在BBOX内进行进行动手动在前景对象上进行交互&#xff0c…

安装博客,论坛

准备环境 防火墙,selinux关掉 [rootboke ~]#yum -y install mariadb mariadb-server mariadb-libs php php-mysql php-gd php-fpm php-cli gd httpd 安装lamp环境 [rootboke ~]# systemctl start httpd mariadb 启动httpd和mariadb 搭建博客 配数据库 [root…

毕业设计-BP神经网络的房地产价值评估研究

目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…

(已更新)BGS本地局域网视频源码

BGS本地局域网视频源码是PHP的,TP5.1 数据库和伪静态设置在压缩包,记得设置运行目录为public 数据库配置请到 config\database.php中修改 只支持MP4,上传后观看时候会自动进行转换为m3u8,调用的是FFmpeg,主要就是为了研究php使用F…

[1.2.0新功能系列:三]Apache doris 1.2.0 Java UDF 函数开发及使用

概述 我们在使用各个SQL引擎时,会有纷繁复杂的查询需求。一部分可以通过引擎自带的内置函数去解决,但内置函数不可能解决所有人的问题,所以一般SQL引擎会提供UDF功能,方便用户通过自己写逻辑来满足特定的需求,Doris也…

【扫盲】Getting into project of R

⭐️ what is an r project include in r studio? An R project in RStudio is a self-contained directory that contains all the files and resources associated with a specific R project. This includes the R code files, data files, output files, and any additio…

虹科案例 | 虹科Panarama SCADA平台在风电场测量的应用,实现风电场的高效管理!

虹科Panorama SCADA平台 在风电场测量的应用 虹科方案 01应用背景 随着煤碳、石油等能源的逐渐枯竭,人类越来越重视可再生能源的利用。风能作为一种清洁的可再生能源日益受到世界各国的重视。中国风能储量大,分布面广,仅陆地上的风能储量就…

go基础第二遍学习——简单易理解

此博文是猿猿对go基础的二遍学习,这一遍学习中对go基础有了进一步的理解,笔记齐全,下面跟着猿猿一起学习吧。 文章目录零、知识补充一、包引入三种方式二、go变量和基本数据类型2.1.基本数据类型2.1.1.整数类型2.1.2.浮点类型2.1.3.字符串类型…

VTK-vtkFieldData

欢迎大家加入社区,雪易VTK社区-CSDN社区云 前言:为区分vtkPoints和vtkPointData的区别,了解vtkFieldData在VTK中的存在意义,从而系统的掌握vtk中关于数据的表达方式。 vtk中通过vtkDataArray进行数据的存储,通过vtkD…

艾美捷内皮细胞生长添加剂参数说明和相关研究

内皮细胞生长因子(ECGF)或内皮细胞生长补充物(ECGS)是一个术语,也用于含有促进内皮细胞生长和维持活性的牛(或猪)脑提取物(T.Maciag,1972和1982)。在早期&…

SQL语法CREATE_大数据培训

1 CREATE 1.1 CREATE DATABASE 用于创建指定名称的数据库,语法如下: CREATE DATABASE [IF NOT EXISTS] db_name 如果查询中存在IF NOT EXISTS,则当数据库已经存在时,该查询不会返回任何错误。 create database test; Ok. 0 …

【虚幻引擎】UE4/UE5Map、Set、 Array的用法

一、Array Array:数组是一个内存空间连续,可以存储多个相同类型的有序的元序列集合。 每一个索引值对应一个Value值,比如0号索引值对应A,值可以是任意类型的变量 用法: 节点 描述 Add 取入一个数组和一个变量。它将该变量插入…

014. 解数独

1.题目链接: 37. 解数独 2.解题思路: 2.1.题目要求: 暂时的理解就是,编写一个程序然后自动填完数独,填完返回(不用求解各种不同的数独组合) 填的时候,数字要满足的规则&#xff1…