Hadoop中的分布式文件系统hdfs是如何实现的?

大数据中的hadoop架构在企业中的应用非常的广泛,而谈到hadoop架构不得不提的就是hdfs分布式文件系统,那么关于hdfs是如何实现的,你了解清楚了吗?

HDFS的出现,提供了一个低成本、高可靠、高容错、高性能的分布式文件系统,凭借这些优点hdfs的应用场景非常广阔。那么关于HDFS分布式文件系统的如此多优点,是怎样做到的呢?

通常一个HDFS集群是由一个中心节点(NameNode)和多个数据节点(DataNode)组成的,中心节点负责管理整个集群,如果中心节点瘫痪那么整个集群就无法使用,上面我们给出设置备份中心节点的解决办法,但是为了进一步确保稳定性通常会选用一台高性能配置好的服务器作为中心节点。

1、数据文件大的文件切块分散存储

HDFS将数据以Block块存储,每一个Block块在搭建HDFS的时候可以被设置,如果数据文件大到超出了Block块设定的大小,就会将这个文件按Block块大小切分为多个文件块存储在HDFS中。切分的Block块不一定存放在同一台Data Node上面,HDFS会根据节点的负载情况进行调整数据存储位置。他们存储位置由中心节点(NameNode)负责管理,NameNode不断的监控DataNode的运行情况,如遇DataNode宕机好及时迁移数据。

2、元数据和数据分开存储

HDFS的寻找文件地址通过从Root中找到元数据,再从Meta找到文件存储的服务器和地址。其中NameNode主要管理存放到DataNode中数据的元数据。由于将元数据和数据分开有利于文件系统的分布式部署,NameNode维护一份数据在集群中不会有名称冲突,一份数据在集群中只有唯一的一个名字。客户端向NameNode发起请求,集群中NameNode向DataNode发起计算任务的请求,DataNode负责将计算的结果反馈给NameNode统计出结果。

3、一次写入多次读取

HDFS中存储的文件只允许一次写入,写入之后就不能被修改,如有修改只能在文件中追加数据。写入的时候需要对数据进行清洗,将坏的数据扔掉。当文件被创建,接着写入数据,最后,一旦文件被关闭,就不能再修改。这种模型可以有效地保证数据一致性,且避免了复杂的并发同步处理,很好地支持了对数据访问的高吞吐量。

4、移动计算比移动数据更划算

分布式系统计算过程中距离数据越近,计算性能越好,尤其是在数据量特别大的时候。由于分布式系统数据存放在不同的机器上,对于计算而言就产生了两种策略,移动数据和移动计算。如果数据量特别大移动数据网络成本消耗非常大而且负责计算的机器的性能瓶颈也很容易限制运算速度。相比移动计算却是非常划算,将计算的方法分发给集群中DataNode节点负责数据计算,DataNode节点将计算结果回传给中心节点,中心节点负责将回传的结果汇总成结果。

HDFS作为一款经典分布式文件系统,在企业的大数据建设当中扮演着非常重要的作用,而且,随着大数据在市场当中的不断深入,以及hdfs的不断优化,相信市场上将会有更多的企业来借用hdfs进行自身大数据的建设。

                                                                  本文转自:海牛学院

猜你喜欢

转载自blog.csdn.net/hainiubuluo/article/details/81098841