HDFS介绍
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFS介绍相关的知识,希望对你有一定的参考价值。
注:该文内容整理自ChinaHadoop.cn上的hadoop视频教程。
一. HDFS概述
HDFS即Hadoop Distributed File System, 源于Google发表于2003年的论文,是一种分布式的文件系统。
HDFS优点:
- 高容错性(数据自动保存多个副本)
- 适合批处理
- 适合大数据处理
- 流式文件访问(一次性写入,多次读取)
- 建立在廉价机器上
HDFS缺点:
- 不善于处理低延迟数据访问
- 不善于处理小文件存取(占用namenode大量内存)
- 不支持并发写入,文件随机修改(一个文件同时只能被一个写者修改,只支持append)
二. HDFS设计思想
以上分布式文件系统的问题在于由于文件的大小不一致,导致了各个服务器的存储空间不均衡,个别服务器相对于其他服务器可能占用率非常高。其次,由于文件是整个存储在一个节点上,在读取文件时,难以实现并行读取,使得某一节点成为系统的网络瓶颈。
HDFS的设计思路是将每个文件分成大小相同的block,以多副本的形式存放在不同节点上,同时维护一个数据块和节点的映射关系,这样的设计解决了第一种方案存在的负载不均衡以及网络瓶颈的问题。
Active NameNode |
StandBy NameNode |
DataNode |
Client |
主Master(只有一个) | 主Master的热备份 | Slaves(有多个) | 文件切分 |
管理HDFS名称空间 | 定期合并fsimage和fsedits,推送给主Master | 存储数据块 | 管理和访问HDFS |
管理数据块映射关系 | 当Active NameNode出现故障, 快速切换成新的Active NameNode |
执行数据读写 | |
配置副本策略 | |||
处理客户端读取请求 |
HDFS数据块
- 文件被切分成大小相同的数据块,例如64mb,如果文件大小不足64mb的也单独存成一个block。数据块大小可以配置。
- 数据块如此之大的好处是时间大多花在了数据存取上,而不是寻道上,提高了吞吐率。
- 每个数据块都有多个副本,个数可以配置。
HDFS写流程的特点是流水线式的写入,DataNode之间互相的写入数据,这样的好处是平衡了网络负载。
以上是关于HDFS介绍的主要内容,如果未能解决你的问题,请参考以下文章