【Hadoop精讲】HDFS详解

目录

理论知识点

角色功能

元数据持久化

安全模式

SecondaryNameNode(SNN)

副本放置策略

HDFS写流程

HDFS读流程

HA高可用

CPA原则

Paxos算法

HA解决方案

HDFS-Fedration解决方案(联邦机制)


理论知识点

角色功能

元数据持久化

另一台机器就是SecondaryNameNode(SNN)

安全模式

不保存位置信息的原因,是因为当机器重启恢复后,DN会和NN建立心跳,汇报块信息。这个过程叫安全模式。 

SecondaryNameNode(SNN)

非HA模式下才有,SNN跟版本没有关系,企业一般不用SNN,而用高可用HA方式。

副本放置策略

塔式服务器:竖的,价格便宜

机架服务器:扁的,价格中等,最上面放一个交换机,ups(电源,电池防断电)

刀片服务器:插入的,价格较贵

2.x修正为第二个副本立即出机架,因为有可能把副本数修改为2

HDFS写流程

某个时间点,传其中一个block的时候状态图

client向NN请求创建文件,这个时候NN返回副本放置策略,按距离排序

HDFS读流程

HA高可用

主从:单点故障、压力过大、内存受限

2.x匆匆上线HA,只实现了一主一备,3.0之后一周多备,可以支持5个,官方推荐3个

一份为二,上面蓝色是故障切换自动化,下面是手动的HA模式

CPA原则

分区容忍性:即脑裂,

Paxos算法

帕克索斯算法:Google Chubby的作者Mike Burrows说过这个世界上只有一种一致性算法,那就是Paxos,其它的算法都是残次品。

主从+过半

参考:https://www.cnblogs.com/crazymakercircle/p/14341015.html

强一致、弱一致都能做,区块链中也是基于该算法

ZooKeeper中使用的是Paxos的简化版本ZAB,ZK做分布式协调
早期用的多,后来大家都把他剔除了,最多用zk选个主,做配置的同步,或者唯一性。因为zk解决是解决的是事件的触发,解决决策之间某一种事件的调用,不适合存东西。 

JournalNodes(Journal杂志、期刊) 跟ZK不是一个东西,JournalNodes做分布式存储
JournalNodes是为了解决节点之间数据同步的。

HA解决方案

FalioverController是用来做健康检查的。

跟NN在同一个节点,它们是不同的进程,FalioverController会监控NN是否活着。

ZK维护一个目录树结构,主备FalioverController会在ZK同时申请在X节点下抢锁,谁抢到谁就是active,否则是standby。

当FalioverController进程监控到了Active的NN挂了,然后FalioverController会把ZK当中抢到的锁删掉。锁删除是一种事件机制,会有callback。

ZK Watch监控:FC抢锁时还在ZK的锁上注册了自己的地址还包括回调函数,当FC删除锁时,产生删除事件,这个删除事件就会触发callback,就会回调FC里的方法,在fc的进程里执行,这是FC发现锁没有了会重新抢锁。

如果是轮询查询锁在不在,会存在轮询间隔,所以会用事件callback机制。

NN还活着,FC挂了,与ZK节点挂了,FC临时节点随着TCP连接的消失,会触发删除事件。

FC会去检查之前Active的NN是不是真死了,没死就把它降级为standby,再把自己升级为active。当网络不通或者什么异常导致无法判断对方是不是真的挂了,此时不会把自己升级为active,这种情况出现的几率很低。(两台主机通过串口相连,这个连接可以当成可靠的)

HA模式下,SNN的角色被Standby替代了,不承担服务,滚动生成FsImage,并把生成的FsImage推回去,以便宕机后的快速恢复。

HDFS-Fedration解决方案(联邦机制)

联邦机制:各个联邦,属于同一个国家,统一一套资源

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nginx转发ingress-nginx问题记录

背景 想直接通过域名访问k8s上的服务. 想到k8s上可以直接通过ingress配置. 不过ingress默认启动的端口3xxxxx. 一般不可能让用户访问我们的服务加上端口. 所以现在要解决直接通过80端口访问ingress的问题. 方案 修改ingress-nginx端口(这个是在网上搜到的方案, 但未选择) 这…

ssm基于vue技术的绿色蔬菜销售管理系统+vue论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本绿色蔬菜销售管理就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息…

2023最新最全【MYSQL】8.0.11下载,零基础入门到精通

1、下载安装: MySQL8下载地址:点击No thanks 点击底部“No thanks, just start my download.”直接下载就行。 然后将压缩包解压到电脑,直接抄我的 D:\Program Files (x86)\mysql\mysql-8.0.11-winx64 2、配置环境(win10&#x…

神经网络:优化器和全连接层

SGD(随机梯度下降) 随机梯度下降的优化算法在科研和工业界是很常用的。 很多理论和工程问题都能转化成对目标函数进行最小化的数学问题。 举个例子:梯度下降(Gradient Descent)就好比一个人想从高山上奔跑到山谷最低…

云原生系列2-CICD持续集成部署-GitLab和Jenkins

1、CICD持续集成部署 传统软件开发流程: 1、项目经理分配模块开发任务给开发人员(项目经理-开发) 2、每个模块单独开发完毕(开发),单元测试(测试) 3、开发完毕后,集成部…

海康威视运行管理中心 Fastjson RCE

漏洞描述 海康威视运行管理中心系统存在低版本Fastjson远程命令执行漏洞,攻击者可在未鉴权情况下获取服务器权限,且由于存在相关依赖,即使服务器不出网无法远程加载恶意类也可通过本地利用链直接命令执行,从而获取服务器权限。 漏…

AMD和CMD的区别

AMD和CMD的区别 AMD和CMD的区别 AMD和CMD的区别 依赖引入不同 AMD: 依赖前置 CMD:就近依赖模块导出不同 AMD:return 返回值 CMD:exports //CMD define(function(){//依赖就近书写var module1 require(Module1);var result1 module1.exec();//exports导出module.exports {r…

【RTOS学习】源码分析(信号量和互斥量 事件组 任务通知)

🐱作者:一只大喵咪1201 🐱专栏:《RTOS学习》 🔥格言:你只管努力,剩下的交给时间! 目录 🍓信号量和互斥量🍅创建🍅Take🍅Give &#x…

【SpringMVC】SpringMVC的请求与响应

文章目录 0. Tomcat环境的配置1. PostMan工具介绍创建WorkSpace建立新的请求 2. 请求映射路径案例结构与代码案例结构案例代码 案例存在问题解决方案方法方法升级版——配置请求路径前缀注解总结 3. Get请求与Post请求案例结构与案例代码案例结构案例代码 Get请求Post请求接收中…

c++打开网页

1.使用ShellExecute 效果图: 相关代码: void Open_url::on_pushButton_clicked() {QString path1 "explorer.exe";QString urlui->lineEdit->text();ShellExecute(NULL, L"open", path1.toStdWString().c_str(), url.toStdWString().c…

海康威视IP网络对讲广播系统命令执行漏洞(CVE-2023-6895)

漏洞介绍 海康威视IP网络对讲广播系统采用领先的IPAudio™技术,将音频信号以数据包形式在局域网和广域网上进行传送,是一套纯数字传输系统。 Hikvision Intercom Broadcasting System 3.0.3_20201113_RELEASE(HIK)版本存在操作系统命令注入漏洞,该漏洞源于文件/ph…

山景DU561—32位高性能音频处理器(DSP)芯片

音频处理可以更好地捕捉和处理声音和音乐;而DSP音频处理芯片是一种利用数字信号处理技术进行音频处理的专用芯片;可用于多种应用,从音乐拾音到复杂的音频信号处理,和声音增强。 由工采网代理的山景DU561是一款集成多种音效算法高…