分布式存储
HDFS

HDFS是Hadoop框架中的一个分布式的文件存储系统

标签:
商务合作
4.7
(3)

介绍

HDFS是一个分布式的文件存储系统,它起源于Apache Nutch项目,当时作为其基础设施的一部分。经过发展,现在属于Apache Hadoop Core项目,网址:http://hadoop.apache.org/。HDFS设计于运行在通用的商用硬件上。它和其他的分布式文件系统有很多相似之处,但也有很多不同之处。

特点:

  • 支持高容错,它可以部署在低成本的硬件上。
  • 支持高吞吐量的访问,尤其当程序需要读取大的数据集合时
  • 支持流式访问,因此并没有严格的遵守POSIX协议

架构

HDFS

写文件

HDFS

1.客户端调用 create 方法,创建一个新的文件;NameNode 会做各种校验,比如文件是否已经存在,客户端是否有权限等。

2.如果校验通过,客户端开始写数据到 DN(DataNode),文件会按照 block 大小进行切块,默认 128M(可配置),DataNode 构成 pipeline 管道,client 端向输出流对象中写数据,传输的时候是以比 block 更小的 packet 为单位进行传输,packet 又可拆分为多个 chunk,每个 chunk 都携带校验信息。

3.每个 DataNode 写完一个块后,才会返回确认信息,并不是每个 packet 写成功就返回一次确认。

4.写完数据,关闭文件。

读文件

HDFS

1.客户端调用 open 方法,打开一个文件。

2.获取 block 的 location,即 block 所在的 DN,NN(NameNode)会根据拓扑结构返回距离客户端最近的 DN。

3.客户端直接访问 DN 读取 block 数据并计算校验和,整个数据流不经过 NN。

4.读取完一个 block 会读取下一个 block。

5.所有 block 读取完成,关闭文件。

副本策略

HDFS

图左:

  • 副本 1:同机架的不同节点。
  • 副本 2:同机架的另一个节点。
  • 副本 3:不同机架的另一个节点。
  • 如果还有其他副本:随机。

图右:

  • 副本 1:同 Client 的节点。
  • 副本 2:不同机架的节点。
  • 副本 3:同第 2 副本相同机架的不同节点。
  • 如果还有其他副本:随机。

这个大数据组件是否好用呢?

点击星号为它评分!

平均评分 4.7 / 5. 投票数: 3

到目前为止还没有投票!成为第一位评论此组件。

相关导航

暂无评论

暂无评论...