大数据之HDFS原理

举报
星辰大海眺望远方 发表于 2019/01/14 21:25:06 2019/01/14
【摘要】 HDFS的关键特性 HDFS的写流程

lHDFS(Hadoop Distributed File System)基于Google发布的GFS论文设计开发,运行在通用硬件上的分布式文件系统。

 l其除具备其它分布式文件系统相同特性外,还有自己特有的特性:  

p高容错性:认为硬件总是不可靠的  

p高吞吐量:为大量数据访问的应用提供高吞吐量支持 

 大文件存储:支持存储TB-PB级别的数据

HDFS架构包含三个部分:

NameNodeDataNodeClient

lNameNodeNameNode用于存储、生成文件系统的元数据。运行一个实例。 

 lDataNodeDataNode用于存储实际的数据,将自己管理的数据块上报给NameNode ,运行多个实例。  

 Client支持业务访问HDFS,从NameNode ,DataNode获取数据返回给业务。多个实例,和业务一起运行

HDFS的关键特性

1.HA高可靠性

首先NameNode将信息存贮在三个DataNode里面,这样其中的一个DataNode死机了,信息也不会丢失,因为三个DataNode的信息存储相同的。其次有主备NameNode,如果发现主namenode宕机了,那么备namenode将会立马顶替主的位置。而如何发现主namenode宕机了呢,这靠的是zookeeper的信息调节

2.元数据持久化

1.NameNode通知主NameNode生成新的日志文件,以后的日志写到Editlog.new中,并获取旧的Editlog

2.NameNode从主NameNode获取FSImage文件及位于JournalNode上面的旧EditLog

3.NameNode将日志和旧的元数据合并,生成新的元数据FSImage.ckpt

4.NameNode将元数据上传到主NameNode

5.NameNode将上传的元数据进行回滚。

6.循环步骤1

HDFS数据写入流程

1. 业务应用调用HDFS Client提供API创建文件,请求写入。

2. HDFS Client联系NameNodeNameNode在元数据中创建文件节点。

3. 业务应用调用write API写入文件。

4. HDFS Client收到业务数据后,NameNode获取到数据块编号、位置信息后,联系DataNode,并将需要写入数据的DataNode建立起流水线。完成后,客户端再通过自有协议写入数据到DataNode1,再由DataNode1复制到DataNode2, DataNode3

5. 写完的数据,将返回确认信息给HDFS Client

6. 所有数据确认完成后,业务调用HDFS Client关闭文件。

7. 业务调用close, flushHDFS Client联系NameNode,确认数据写完成,NameNode持久化元数据










HDFS不适合大量小文件、随机写入


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。