漫画hdfs工作原理(转)

jht_newbie jht_newbie     2022-08-03     631

关键词:

转自:http://blog.csdn.net/netcoder/article/details/7442779?locationNum=2

对漫画内容更好的解读,可参考:

http://www.weixuehao.com/archives/596

http://blog.csdn.net/woshiwanxin102213/article/details/19990487?locationNum=4

 

HDFS系统主要由三大部分组成:client、namenode、datanodes。

①用户通过client对hdfs系统进行读写数据。

②namenode在hdfs系统中是唯一的,主要负责协调整个系统。

③datanode一般有多个,主要负责保存数据。

 

通过Client写数据到hdfs集群,主要步骤:

①用户通过client发起写数据文件请求。client将对数据进行分块(block),默认情况64M(或者128M)、每个block默认3个备份,用户可以进行配置。

分成固定大小、且合适大小的块主要是为了负载均衡和数据传输时间超过寻道时间(高吞吐率)。

②数据分块后,client对分块逐个处理,client将向namenode发起写请求并告之备份个数,如3。namenode接收到client的请求后,先分配3个datanode,然后把3个datanode节点的位置(按照距离由近到远排序)发给client。

③client取出列表中第一个datanode地址,把数据以及datanode位置信息的list发给该datanode(发送过程是以流式写入)。

④第一个datanode接收数据以及list后,保存到硬盘中,datanode在保存数据的过程中,把接收到的数据发送给list中下一个datanode。

⑤下一个datanode依次保存并转发数据,直到list的末尾。

⑥每个datanode在接收完一个block的数据之后,向namenode(感觉图有问题,应该是向client发送“done”,然后cliet收到所有的“done”消息后,告知namenode该block发送done,所有的block发送完,client通知namenode:file done, namenode记录下该文件的元数据信息(NameNode在内存中存储了meta等信息;内存有瓶颈),写结束)发送“done”消息

⑦当namenode收到针对该block所有datanode的“done”消息后,认为该block成功保存并备份到hdfs。

⑧当client完成第一个block的发送,继续重复之前步骤,发送第二个block,如此循环往复。

⑨当一个文件所有的block都写完了,client将向namenode发送关闭文件消息;namenode收到后,完成所有元数据信息的持久化。

 

通过Client从hdfs集群读数据,主要步骤:

①用户从client发起读文件请求,client向namenode发送该文件名。

②namenode向client回复保存了这个文件所有block的列表a,所有datanode保存的block列表b。

③client拿到列表后,就知道这个文件有多少block需要下载,并且知道每个block保存在哪些datanode上。client选择每个block对应的最佳(最近,l通常就是ist里面第一个)的datanode下载各个block即可。

hdfs容错机制:

主要错误类型:①节点失效 ②通信失败 ③数据损坏

一、节点失效

①如果主节点namenode挂掉,整个集群就挂了。

②从节点datanode失效检测:每3秒钟datanode主动向namenode发送心跳信息,如果namenode超过10分钟没有收到datanode的信息,就任务该datanode挂掉了,即使是因为网络原因收不到心跳信息,也会认为该datanode挂掉了。

二、网络失效

①在数据发送过程中,接受者或反馈ack(aknowledgement,确认字符)。在几次重连接后,如果ack一直没有被收到,发送方就认为接收方挂掉了或者网络连接失败。

三、数据损坏

①在发送数据的时候,数据以及数据的效验码一并发送给接收方,接收方在保存数据的同时,也保存对应的效验码。

②所有datanode都会发送block report给namenode,block repor中记录了该datanode保存的所有block的信息。

③在发送block report之前,datanode会检查block是否能通过效验码的验证,如果不能通过验证,则不会将该block的信息放到block report中。当namenode收到block report后,就会发现该datanode是否出现了数据损坏。

HDFS容错机制

一、处理写失败

①首先注意到,写数据的时候,一个block的数据在网络中是通过更小的包(packet)进行传输的。

②并且,每个datanode在收到packet后会给client发送一个ack应答。client根据收到的ack情况,判断哪些节点失效,如果发现有datanode失效,就调整复制链,跳过挂掉的datanode节点。

③当发生datanode失效时,client将向调整后的list第一个有效节点发送调整后的list。注意到,那个block还是将处于“under replicated”的状态,但是namenode将在后续处理。

二、处理读失败

①当client发起读请求后,由于namenode会发送保存了某个block的所有datanode,所以当某一个datanode挂掉,client可以从列表中其他datanode读取该block数据。

三、数据节点失效(或者数据块失效)容错处理

①namenode保存了两个列表,一个list是每个blocks保存在datanode节点的情况,另一个list是保存了每个datanode上所拥有的block情况。

②namenode会以以下策略持续更新以上两个list:1.当一个block在某个datanode上数据损坏,namenode将更新第一个list,从block下移除该datanode;2.当一个datanode挂掉会,将会同时更新这两个list。

③namenode通过扫描block list和datanode list就可以知道,哪些数据备份出现了异常,把处于异常的备份称为“under replicated”待备份,针对“under replicated”待备份的block,namenode会让拥有待备份block的datanode从其他有该block备份的datanode拷贝。

④该容错是基于,只有还有一个正确副本的情况。虽然HDFS系统不能完全保证至少有一个副本是可用的。但是HDFS系统尽力保证选择出最明智的副本位置。

 

副本放置策略:

①每个集群被物理部署到多个机架,每个机架有多个datanode

②选择第一个副本位置:如果写入者是集群中的一个成员,那么它被选为第一个备份,否则随机地选择一个datanode作为备份位置。

③接下来两个副本的选择:选择非第一个备份所在机架上两个datanode作为备份

④随后的位置选取,选择任一一个随机的datanode,只要它满足以下两个条件:1.每个datanode只有一个副本(某个block的多个副本一定会分别放在不同的datanode上) 2.每个机架最多两个副本。

请注意:有时这两个条件不能被同时满足,那怎么办?HDFS是允许使用你自己的放置算法的,如果你有更好的算法,赶紧用起来!

下一步该怎么做?

 

漫画理解hdfs原理

https://www.cnblogs.com/jonty666/p/9905352.htmlhttps://blog.csdn.net/eric_sunah/article/details/41546863 查看详情

深刻理解hdfs工作原理

概述HDFS(HadoopDistributedFileSystem)Hadoop分布式文件系统的简称。HDFS被设计成适合运行在通用硬件(commodityhardware)上的分布式文件系统。DFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常... 查看详情

hdfs工作原理(代码片段)

一、HDFS组成架构1)NameNode(nn):就是Master,它是一个主管、管理者。(1)管理HDFS的名称空间(2)配置副本策略(3)管理数据块(Block)映射信息(4)处理客户端 查看详情

hdfs的工作原理

元数据管理机制名词解释1、NameNode?hdfs-site.xml的dfs.name.dir属性?是整个文件系统的管理节点。它维护着整个文件系统的文件目录树,文件/(根)目录的元信息和每个文件对应的数据块列表。接收用户的操作请求。文件包括:?fsimage... 查看详情

hdfs的datanode工作原理(代码片段)

datanode的作用:  (1)提供真实文件数据的存储服务。  (2)文件块(block):最基本的存储单位。对于文件内容而言,一个文件的长度大小是size,那么从文件的0偏移开始,按照固定的大小,顺序对文件进行划分并编号,划分好... 查看详情

hadoop工作原理(代码片段)

...构2.2、HDFS写入过程: 2.3、HDFS读取过程 三、mapreduce工作原理四、HDFS操作命令一、hadoop三大核心组件HDFS(HadoopDistributeFileSystem):hadoop的数据存储工具。YARN(YetAnotherResourceNegotiator,另一种资源协调者)ÿ... 查看详情

hdfs2.x架构及工作原理

1HDFS简介1.1Hadoop2.0介绍Hadoop是Apache的一个分布式系统基础架构,可以为海量数据提供存储和计算。Hadoop2.0即第二代Hadoop系统,其框架最核心的设计是HDFS、MapReduce和YARN。其中,HDFS为海量数据提供存储,MapReduce用于分布式计算,YARN... 查看详情

hbase 随机写入的工作原理

】hbase随机写入的工作原理【英文标题】:howhbaserandomwriteworks【发布时间】:2014-12-0506:37:45【问题描述】:我是Hbase的新手。Hbase非常适合随机更新(放置或删除)表,但我无法理解hbase是如何执行的。因为hbase使用HDFS进行存储,... 查看详情

翻译:漫画https原理四解析概念httpsssltls

漫画HTTPS原理五部曲翻译:漫画HTTPS原理一为什么我们需要HTTPS翻译:漫画HTTPS原理二了解对称和非对称加密翻译:漫画HTTPS原理三浏览器和互联网之间的秘密握手翻译:漫画HTTPS原理四解析概念HTTPS、SSL、TLS翻译:漫画HTTPS原理五证书和证... 查看详情

翻译:漫画https原理五证书和证书颁发机构

漫画HTTPS原理五部曲翻译:漫画HTTPS原理一为什么我们需要HTTPS翻译:漫画HTTPS原理二了解对称和非对称加密翻译:漫画HTTPS原理三浏览器和互联网之间的秘密握手翻译:漫画HTTPS原理四解析概念HTTPS、SSL、TLS翻译:漫画HTTPS原理五证书和证... 查看详情

大数据学习之hdfs的工作机制07

1:namenode+secondaryNameNode工作机制2:datanode工作机制 3:HDFS中的通信(代理对象RPC)下面用代码来实现基本的原理1:服务端代码packageit.dawn.HDFSPra.RPC.server;importjava.io.IOException;importorg.apache.hadoop.HadoopIllegalArgumentExce 查看详情

翻译:漫画https原理二了解对称和非对称加密

漫画HTTPS原理五部曲翻译:漫画HTTPS原理一为什么我们需要HTTPS翻译:漫画HTTPS原理二了解对称和非对称加密翻译:漫画HTTPS原理三浏览器和互联网之间的秘密握手翻译:漫画HTTPS原理四解析概念HTTPS、SSL、TLS翻译:漫画HTTPS原理五证书和证... 查看详情

翻译:漫画https原理一为什么我们需要https

漫画HTTPS原理五部曲翻译:漫画HTTPS原理一为什么我们需要HTTPS翻译:漫画HTTPS原理二了解对称和非对称加密翻译:漫画HTTPS原理三浏览器和互联网之间的秘密握手翻译:漫画HTTPS原理四解析概念HTTPS、SSL、TLS翻译:漫画HTTPS原理五证书和证... 查看详情

hadoop之mapreduce工作原理

    Hadoop由两部分组成,分别是分布式文件系统HDFS和分布式计算框架MapReduce。其中,分布式文件系统HDFS主要用于大规模数据的分布式存储,而MapReduce则构建在分布式文件系统上,对于存储在分布式文件系统的数据... 查看详情

大数据hadoophdfs的原理之核心设计(代码片段)

...HDFS的API操作,那么接下来就对HDFS原理之核心设计与工作机制进行详细的分析。好了,我们开始今天的正文。文章目录一、HDFS心跳机制二、HDFS安全模式三、HDFS副本存放策略四、HDFS负载均衡一、HDFS心跳机制在网络环境中&... 查看详情

翻译:漫画https原理三浏览器和互联网之间的秘密握手

漫画HTTPS原理五部曲翻译:漫画HTTPS原理一为什么我们需要HTTPS翻译:漫画HTTPS原理二了解对称和非对称加密翻译:漫画HTTPS原理三浏览器和互联网之间的秘密握手翻译:漫画HTTPS原理四解析概念HTTPS、SSL、TLS翻译:漫画HTTPS原理五证书和证... 查看详情

hadoop的ha原理

...是通过配置Active/Standby两个实例来解决单点故障二、HDFS-HA工作机制2.1HDFS-HA工作要点(1)元数据管理方式改变两个NameNode内存中各自保存一份元数据࿰ 查看详情

分布式并行计算mapreduce

1.用自己的话阐明Hadoop平台上HDFS和MapReduce的功能、工作原理和工作过程。HDFS的功能:元数据、检查点、DataNode功能HDFS的工作原理:数据存取-HDFS架构:Master/Slave(主从结构)-节点可以理解为物理机器主节点,只有一个:Namenode从节点... 查看详情