数据仓库

Haddop:HDFS

2019-08-20  本文已影响0人  惊不意外

HDFS体系结构

HDFS采用了主从(Master/Slave)结构模型,一个HDFS集群是由一个NameNode和若干个DataNode组成。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作;集群中的DataNode管理存储的数据。

HDFS允许用户以文件的形式存储数据。从内部来看,文件被分成若干个数据块,而且这若干个数据块存放在一组DataNode上。NameNode执行文件系统的命名空间操作,比如打开关闭、重命名文件或目录等,它也负责数据块到具体DataNode的映射。DataNode负责处理文件系统客户端的文件读写请求,并在NameNode的统一调度下进行数据块的创建、删除和复制工作。 HDFS体系结构

HDFS存储

数据块(Block)
HDFS存储

HDFS中的文件读取

  • 客户端联系NameNode,得到所有数据块信息,以及数据块对应的所有数据服务器的位置信息
  • 尝试从某个数据块对应的一组数据服务器中选出一个,进行连接
  • 数据被一个包一个包发送回客户端,等到整个数据块的数据都被读取完了,就会断开此链接,尝试连接下一个数据块对应的数据服务器,整个流程,依次如此反复,直到所有想读的都读取完了为止

HDFS中的文件写入

  • 客户端通过DistributedFileSystem创建一个文件
  • NameNode验证新的文件不存在文件系统中,并且保证请求客户端拥有创建文件的权限
  • 客户端写入数据时,FSDataOutputStream将文件分割成包,然后放入一个内部队列,我们成为“数据队列”。DataStreamer会将这些小的文件包放入数据流中,并从Namenode中获取合适的Datanode来存放副本,并将文件包推送至各个DataNode中。
  • DFSOutputStream保存一个包的内部队列,等待DataNode的返回信息,只有所有DataNode都返回写入成功时,从队列中删除

HDFS总结

Hadoop适合做什么

存储并管理PB级数据
处理非结构化数据
注重数据处理的吞吐量(latency不敏感)
应用模式为:write-once-read-many存取模式

Hadoop不适合做什么

存储小文件 (不建议使用)
大量的随机读 (不建议使用)
需要对文件的修改 (不支持)

上一篇下一篇

猜你喜欢

热点阅读