hadoop 漫画流程

标签: hadoop 漫画 | 发表时间:2016-02-28 15:11 | 作者:chengjianxiaoxue
出处:http://www.iteye.com

 

 

 

 

http://www.cstor.cn/textdetail_10211.html

 

根据Maneesh Varshney的漫画改编,以简洁易懂的漫画形式讲解HDFS存储机制与运行原理。

 

   一、角色出演

  

角色

 

  如上图所示,HDFS存储相关角色与功能如下:

 

  Client:客户端,系统使用者,调用HDFS API操作文件;与NN交互获取文件元数据;与DN交互进行数据读写。

 

  Namenode:元数据节点,是系统唯一的管理者。负责元数据的管理;与client交互进行提供元数据查询;分配数据存储节点等。

 

  Datanode:数据存储节点,负责数据块的存储与冗余备份;执行数据块的读写操作等。

 

  二、写入数据

 

  1、发送写数据请求

  

发送写数据请求

 

  HDFS中的存储单元是block。文件通常被分成64或128M一块的数据块进行存储。与普通文件系统不同的是,在HDFS中,如果一个文件大小小于一个数据块的大小,它是不需要占用整个数据块的存储空间的。

 

  2、文件切分

  

文件切割

 

  3、DN分配

  

DN分配1

 

  

DN分配2

 

  4、数据写入

  

数据写入1

 

  

数据写入2

 

  5、完成写入

  

完成写入1

 

  

完成写入2

 

  

完成写入3

 

  6、角色定位

  

角色定位

 

  三、HDFS读文件

 

  1、用户需求

  

用户需求

 

  HDFS采用的是“一次写入多次读取”的文件访问模型。一个文件经过创建、写入和关闭之后就不需要改变。这一假设简化了数据一致性问题,并且使高吞吐量的数据访问成为可能。

 

  2、先联系元数据节点

  

联系元数据节点1

 

  

联系元数据节点2

 

  

联系元数据节点2

 

  3、下载数据

  

下载数据

 

  前文提到在写数据过程中,数据存储已经按照客户端与DataNode节点之间的距离进行了排序,距客户端越近的DataNode节点被放在最前面,客户端会优先从本地读取该数据块。

 

  4、思考

  

思考

 

  四、HDFS容错机制——第一部分:故障类型及监测方法

 

  1、三类故障

 

  (1)第一类:节点失败

  

节点失败

 

  (2)第二类:网络故障

  

网络故障

 

  (3)第三类:数据损坏(脏数据)

  

数据损坏

 

  2、故障监测机制

 

  (1)节点失败监测机制

  

节点失败检测机制1

 

  

节点失败检测机制2

 

  

节点失败检测机制3

 

  (2)通信故障监测机制

  

通信故障检测机制

 

  (3)数据错误监测机制

  

数据错误检测机制1

 

  

数据错误检测机制2

 

  

数据错误检测机制3

 

  3、回顾:心跳信息与数据块报告

  

回顾:心跳信息与数据块报告

 

  HDFS存储理念是以最少的钱买最烂的机器并实现最安全、难度高的分布式文件系统(高容错性低成本),从上可以看出,HDFS认为机器故障是种常态,所以在设计时充分考虑到单个机器故障,单个磁盘故障,单个文件丢失等情况。

 

  五、容错第二部分:读写容错

 

  1、写容错

  

写容错1

 

  

写容错2

 

  

写容错3

 

  

写容错4

 

  2、读容错

  

读容错

 

  

读容错2

 

  六、容错第三部分:数据节点(DN)失效

  

数据节点(DN)失效1

 

  

数据节点(DN)失效2

 

  

数据节点(DN)失效3

 

  

数据节点(DN)失效4

 

  

数据节点(DN)失效5

 

  

数据节点(DN)失效6

 

  七、备份规则

  

备份规则

 

  1、机架与数据节点

  

1、机架与数据节点

 

  2、副本放置策略

  

2、副本放置策略

 

  数据块的第一个副本优先放在写入数据块的客户端所在的节点上,但是如果这个客户端上的数据节点空间不足或者是当前负载过重,则应该从该数据节点所在的机架中选择一个合适的数据节点作为本地节点。

 

  如果客户端上没有一个数据节点的话,则从整个集群中随机选择一个合适的数据节点作为此时这个数据块的本地节点。

  

数字节点放置

 

  HDFS的存放策略是将一个副本存放在本地机架节点上,另外两个副本放在不同机架的不同节点上。

 

  这样集群可在完全失去某一机架的情况下还能存活。同时,这种策略减少了机架间的数据传输,提高了写操作的效率,因为数据块只存放在两个不同的机架上,减少了读取数据时需要的网络传输总带宽。这样在一定程度上兼顾了数据安全和网络传输的开销。

  

DN节点选取

 

  

细则

 

  via:京东大数据

 

  来源:36大数据

 


已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [hadoop 漫画] 推荐:

hadoop 漫画流程

- - 互联网 - ITeye博客
根据Maneesh Varshney的漫画改编,以简洁易懂的漫画形式讲解HDFS存储机制与运行原理.   如上图所示,HDFS存储相关角色与功能如下:.   Client:客户端,系统使用者,调用HDFS API操作文件;与NN交互获取文件元数据;与DN交互进行数据读写.   Namenode:元数据节点,是系统唯一的管理者.

Hadoop Streaming 编程

- - 学着站在巨人的肩膀上
Hadoop Streaming是Hadoop提供的一个编程工具,它允许用户使用任何可执行文件或者脚本文件作为Mapper和Reducer,例如:. 采用shell脚本语言中的一些命令作为mapper和reducer(cat作为mapper,wc作为reducer). 本文安排如下,第二节介绍Hadoop Streaming的原理,第三节介绍Hadoop Streaming的使用方法,第四节介绍Hadoop Streaming的程序编写方法,在这一节中,用C++、C、shell脚本 和python实现了WordCount作业,第五节总结了常见的问题.

Hadoop使用(一)

- Pei - 博客园-首页原创精华区
Hadoop使用主/从(Master/Slave)架构,主要角色有NameNode,DataNode,secondary NameNode,JobTracker,TaskTracker组成. 其中NameNode,secondary NameNode,JobTracker运行在Master节点上,DataNode和TaskTracker运行在Slave节点上.

Hadoop MapReduce技巧

- - 简单文本
我在使用Hadoop编写MapReduce程序时,遇到了一些问题,通过在Google上查询资料,并结合自己对Hadoop的理解,逐一解决了这些问题. Hadoop对MapReduce中Key与Value的类型是有要求的,简单说来,这些类型必须支持Hadoop的序列化. 为了提高序列化的性能,Hadoop还为Java中常见的基本类型提供了相应地支持序列化的类型,如IntWritable,LongWritable,并为String类型提供了Text类型.

Hadoop TaskScheduler浅析

- - kouu&#39;s home
TaskScheduler,顾名思义,就是MapReduce中的任务调度器. 在MapReduce中,JobTracker接收JobClient提交的Job,将它们按InputFormat的划分以及其他相关配置,生成若干个Map和Reduce任务. 然后,当一个TaskTracker通过心跳告知JobTracker自己还有空闲的任务Slot时,JobTracker就会向其分派任务.

HADOOP安装

- - OracleDBA Blog---三少个人自留地
最近有时间看看hadoop的一些东西,而且在测试的环境上做了一些搭建的工作. 首先,安装前需要做一些准备工作. 使用一台pcserver作为测试服务器,同时使用Oracle VM VirtualBox来作为虚拟机的服务器. 新建了三个虚拟机以后,安装linux,我安装的linux的版本是redhat linux 5.4 x64版本.

Hadoop Corona介绍

- - 董的博客
Dong | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及 版权声明. 网址: http://dongxicheng.org/hadoop-corona/hadoop-corona/. Hadoop Corona是facebook开源的下一代MapReduce框架. 其基本设计动机和Apache的YARN一致,在此不再重复,读者可参考我的这篇文章 “下一代Apache Hadoop MapReduce框架的架构”.

Hadoop RPC机制

- - 企业架构 - ITeye博客
RPC(Remote Procedure Call Protocol)远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议. Hadoop底层的交互都是通过 rpc进行的. 例如:datanode和namenode 、tasktracker和jobtracker、secondary namenode和namenode之间的通信都是通过rpc实现的.

Hadoop Rumen介绍

- - 董的博客
Dong | 新浪微博: 西成懂 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及 版权声明. 网址: http://dongxicheng.org/mapreduce/hadoop-rumen-introduction/. 什么是Hadoop Rumen?. Hadoop Rumen是为Hadoop MapReduce设计的日志解析和分析工具,它能够将JobHistory 日志解析成有意义的数据并格式化存储.

Hadoop contrib介绍

- - 董的博客
Dong | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及 版权声明. 网址: http://dongxicheng.org/mapreduce/hadoop-contrib/. Hadoop Contrib是Hadoop代码中第三方公司贡献的工具包,一般作为Hadoop kernel的扩展功能,它包含多个非常有用的扩展包,本文以Hadoop 1.0为例对Hadoop Contrib中的各个工具包进行介绍.