HDFS的系统组成介绍

一、HDFS框架简述

HDFS设计目标

1)容错性;

2)流式数据访问;

3)大规模数据集;

4)简单的一致性模型;

5)移动计算到数据附近;

6)可移植性;

二、HDFS分解简述

NameNode/DataNode

HDFS采用Master/Slave架构,HDFS集群是由一个NameNode和多个DataNodes组成。NameNode是中心服务器,负责管理文件系统的名字空间(namespace)以及客户端的访问。DataNode负责管理它所在节点上的存储。用户能够通过HDFS文件系统的名字空间以文件的形式在上面存储数据。

对于内部存储,一个文件被切分为一个或多个块,存储在一组DataNode上。NameNode执行文件系统的名字空间操作,比如打开、关闭、重命名文件或目录。它也负责确定数据块到具体DataNode节点的映射。

数据块存储副本容错

HDFS文件的所有数据块都会有副本。每个文件的数据块大小和副本系数都是可配置的。HDFS中的文件都是一次性写入的,并且在任何时候只能有一个写入者。

NameNode全权管理数据块的复制,它周期性地从集群中的每个DataNode接收心跳信号和块状报告(Block Report)。

块状态报告包含了一个该DataNode上所有数据块的列表。

副本放置策略

副本的放置策略是区分文件系统的重要特性之一,也是HDFS性能和可靠性的关键,HDFS采用了机架感知(rack-aware)的策略来存储副本。

在大多数情况下,副本系数是3,HDFS的存放策略是将一个副本存放在本地机架的节点上,一个副本放在同一机架的另一个节点上,最后一个副本放在不同机架的节点上。这种策略减少了机架间的数据传输,这就提高了写操作的效率。整个机架的错误远远比单个节点的错误少,所以这个策略不会影响到数据的可靠性和可用性。于此同时,因为数据块只放在两个(不是三个)不同的机架上,所以此策略减少了读取数据时需要的网络传输总带宽。在这种策略下,副本并不是均匀分布在不同的机架上。三分之一的副本在一个节点上,三分之二的副本在一个机架上,如果大于3个副本,其他副本均匀分布在剩下的机架中,这一策略在不损害数据可靠性和读取性能的情况下改进了写的性能。

机架感知

一个大型集群大多会被分为多个机架(Rack),一个机架包含多个节点,一般来说,机架内部机器的通信速度要高于机架之间的通信速度,而且往往机架之间的通信受到上层交换机等的带宽限制。

HDFS中,对机架的感知并非是自适应的,即机架的配置是由配置文件决定,并且是人工指定的,这些rackid信息可以通过topology.script.file.name配置,通过IP到机架id的映射指定哪些节点属于哪个机架,在NameNode启动时将配置信息读取到内存中,保存在一个map中。

通过机架感知,NameNode就可以画出DataNode以及交换机等节点的网络拓扑图,通过拓扑图就可以计算出任意两个DataNode之间的距离,得到最优的存放策略,优化整个集群的网络带宽均衡以及数据最优分配。

安全模式

安全模式是指NameNode的一种特殊状态。处于安全模式的NameNode是不进行数据块的复制的。NameNode从所有的 DataNode接收心跳信号和块状态报告。当Namenode检测确认某个数据块的副本数目达到该数据块的最小副本数,那么该数据块会被认为是副本安全(safely replicated)的。

Namenode退出安全模式状态后,它会确定哪些数据块的副本没有达到指定数目,并将这些数据块复制到其他DataNode上。

元数据持久化

HDFS通过dfs.name.dir这个参数设置HDFS的元数据信息存放在NameNode本地操作系统的目录,目录里通常包括以下文件:edits FsImage FsTimeVERSION

EditLog

Namenodeedits文件来保存对元数据进行的每次操作,比如创建文件,删除 文件,修改文件的副本系数。类似于mysql中的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值