精华内容
下载资源
问答
  • HDFS存储原理

    2018-10-08 21:59:00
    接下来的博文会对这几个组件进行一一介绍,这篇博文先聊一聊 HDFS存储原理。 2. HDFS实现机制 HDFS 主要是为了应对海量数据的存储,由于数据量非常大,因此一台服务器是解决不能够应付的,需要一个集群来存储...

    1. 引言

    在整个 hadoop 框架中,主要存在三个组件:HDFS、MapReduce 和 YARN,HDFS 主要负责数据的存储,MapReduce 则数据模型的运算,YARN 负责资源的调度。接下来的博文会对这几个组件进行一一介绍,这篇博文先聊一聊 HDFS 的存储原理。

    2. HDFS实现机制

    HDFS 主要是为了应对海量数据的存储,由于数据量非常大,因此一台服务器是解决不能够应付的,需要一个集群来存储这些数据。在这个集群中,存在一个 NameNode 节点,该节点用于管理元数据,即用户上传的文件位于哪个服务器上,都多少个副本等信息。此外,还有多个 DataNode 节点,这些节点就是文件存储位置。文件存储到集群中需要考虑以下这几个问题:

    1. 保证数据的安全性,即数据应该有足够多的副本
    2. 能够适应高并发的访问
    3. 因为这些数据是存储在多个服务器上的,因此需要保证每个服务器的负载均衡

    HDFS 的设计很巧妙,完美的解决了这几个问题。当用户上传一个文件时,会提供一个 虚拟路径,该路径是方便客户端对文件进行读写操作的,NameNode 中存在该路径和真实的存储物理路径的映射。NameNode 会先判断上传的文件是否存在,如果不存在,则允许用户继续上传。

    客户端收到服务器允许上传文件的响应之后,会将该文件分为一个个块(block),每个块默认大小为 128MB,将每个块依次发送到 Datanode 中,由 NameNode 记录块的存储位置等信息存储在元数据中。为了保证数据有足够多的副本,这时服务器会进行一个异步的操作,将这个块再进行复制操作,随机存储到一个 DataNode 中(这里随机存储是为了保证服务器的负载均衡,避免多个客户端对同一个文件进行访问,这个文件和其副本都存储在同一个 DataNode 节点上的情况)。存储的大致过程如下:

    HSFD存储

    3. NameNode 工作原理

    上面讲述了 HDFS 的实现机制,不过这样存储实际上只解决了两个问题:数据的安全性和每个服务器的负载均衡,但是当多个客户端同时上传文件时,都需要访问 NameNode 节点,在这种高并发的情况下,NameNode 是如何应付的呢?

    上面说过,NameNode 是通过元数据来定位文件的存储路径的,如果元数据只是存储在磁盘文件中,当多个客户端同时访问时,响应速度就会受到限制。HDFS 是这样解决这个问题的:首先,会有一个 fsimage 文件,用于存储所有的元数据,fsimage 文件中的数据会 加载到内存中,这样就提高了读取文件的速度。除此之外,还有一个 edits log 文件用于存储最新上传文件的元数据,这个文件大小是有限制的,一般为 64MB。当 edits log 文件存储大小达到 64MB 时,就会将这些元数据添加到 fsimage 文件中。整个操作流程如下:

    NameNode存储机制1

    通过这样的设计,由于内存读取数据非常快,因此能够适应多个客户端同时访问的压力。而且当服务器碰到意外情况时,例如突然断电或者服务器崩溃等情况,虽然内存中的元数据会丢失,但由于 edits log 和 fsimage 存储着元数据,依然可以找到文件存储的真实路径,只是在服务器恢复之前不能够再进行上传和下载操作了。(不过有一个 HA 机制可以避免 NameNode 崩溃之后还可以继续提供服务,这个稍后再进行了解。)

    由于 edits log 是日志,其存储的格式与元 fsimage 存储的元数据格式不一样,在进行合并操作时,需要进行额外的逻辑运算,如果这些运算直接在 NameNode 中进行的话,无疑会增大 CPU 的负荷,HDFS 便将这些操作放在 Secondary Node 中进行,整个过程如下:

    SecondaryNode作用

    :这是我对 HDFS 存储机制的理解,由于刚开始接触 HDFS,因此文中可能会有错误,欢迎指正。

    转载于:https://my.oschina.net/firepation/blog/2231607

    展开全文
  • hadoop hdfs存储原理

    千次阅读 2017-08-25 10:19:43
    hadoop的hdfs存储原理,hdfs的存储原理,hdfs的底层存储原理

    来源url:http://www.36dsj.com/archives/41391


    根据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:京东大数据                                                                                                                                        
    End. 

    展开全文
  • hadoop HDFS存储原理

    万次阅读 多人点赞 2016-08-09 11:28:40
    根据Maneesh Varshney的漫画改编,以简洁易懂的漫画形式讲解HDFS存储机制与运行原理。 一、角色出演 如上图所示,HDFS存储相关角色与功能如下: Client:客户端,系统使用者,调用HDFS API操作...

    来源url:http://www.36dsj.com/archives/41391


    根据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:京东大数据                                                                                                                                        
    End. 

    展开全文
  • HDFS原理介绍

    2018-10-09 11:14:21
    保存多个副本,且提供容错机制,副本丢失或宕机... 然后将block按键值对存储HDFS上,并将键值对的映射存到内存中。如果小文件太多,那内存的负担会很重。 (笔记:HDFS不适合小文件存储:小文件多,造成内存负担。)
  • 图解HDFS存储原理

    2019-10-23 16:59:45
    1. HDFS写数据原理 2. HDFS读数据原理 3. HDFS故障类型和其检测方法 第二部分:读写故障的处理 第三部分:DataNode 故障处理 副本布局策略: ...

    1. HDFS写数据原理

     

    2. HDFS读数据原理

     

    3. HDFS故障类型和其检测方法

    第二部分:读写故障的处理

     

    第三部分:DataNode 故障处理

    副本布局策略

    展开全文
  • 本次分享结合Maneesh Varshney的漫画改编,为大家分析HDFS存储机制与运行原理。一、角色出演如上图所示,HDFS存储相关角色与功能如下:Client:客户端,系统使用者,调用HDFS API操作文件;与NN交互获取文件元数据;...
  • HDFS存储原理

    2019-12-03 22:58:52
    块block的大小默认是128M,hdfs-site.xml <property> <name>dfs.blocksize</name> <value>134217728</value> </property> 副本数默认是3,hdfs-site.xml <property>...
  • 今天的大数据入门分享,我们就来讲讲Hadoop HDFS存储原理。 1、什么是HDFS? HDFS即Hadoop distributed file system(hadoop分布式文件系统),在Hadoop当中负责分布式存储阶段的任务,它是一个分布式的文件系统...
  • HDFS存储原理图解

    千次阅读 2019-07-21 13:21:46
    http://smartsi.club/hadoop-illustrate-how-hdfs-works.html
  • 根据Maneesh Varshney的漫画改编,以简洁易懂的漫画形式讲解HDFS存储机制与运行原理。  一、角色出演  如上图所示,HDFS存储相关角色与功能如下:  Client:客户端,系统使用者,调用HDFS API操作文件;与NN...
  • 常见面试题:Hadoop之HDFS存储原理的详细图文解析
  • 根据Maneesh Varshney的漫画改编,以简洁易懂的漫画形式讲解HDFS存储机制与运行原理。  一、角色出演    如上图所示,HDFS存储相关角色与功能如下:  Client:客户端,系统使用者,调用HDFS API操作...
  • HDFS基本的原理

    千次阅读 2019-05-09 15:21:13
    一、HDFS简介 Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。HDFS体系结构中有两类节点,一类是NameNode,又叫"元数据节点";另一类是DataNode,又叫"数据节点"。...
  • HDFS概述,HDFS客户端操作,HDFS数据流,namenode工作机制,datanode工作机制,HDFS 高可用集群配置
  • 1、HDFS简介: Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件上的分布式文件系统。HDFS有三类节点,一类是NameNode,又名“名称节点/元数据节点”;另一类是DataCode(数据节点),还有一个是Secondary ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,790
精华内容 15,116
关键字:

hdfs存储原理