背景
HDFS(Hadoop Distributed File System)源自于Google发表于2003年10月的GFS论文,HDFS是GFS克隆版。它是一个易于扩展的分布式文件系统,可以运行在大量普通廉价机器上,它提供容错机制,为大量用户提供性能不错的文件存取服务。
它具有以下优点:
- 高容错性:数据自动保存多个副本, 副本丢失后,自动恢复
- 适合批处理:移动计算而非数据,数据位置暴露给计算框架
- 适合大数据处理:GB、TB、甚至PB级数据,百万规模以上的文件数量,10K+节点规模
- 流式文件访问:一次性写入,多次读取,保证数据一致性
- 可构建在廉价机器上 :通过多副本提高可靠性,提供了容错和恢复机制
它也具有以下缺点:
- 高延迟数据访问:HDFS像火车,高吞吐率,高延迟,比较笨重;
- 对大量小文件存取支持不好:HDFS对亿级以上的大量小文件存取支持不好,NameNode占用大量内存,寻道时间超过读取时间
- 不支持并发写入:一个文件只能有一个写者,不支持并发写入,只能一个一个的写入;
- 文件不支持修改:HDFS文件不支持修改,只支持追加,或是添加新文件,删除原文件。
HDFS架构
HDFS设计思想
分布式文件系统的一种实现方式
以上方案不好做负载均衡和容错,不支持计算框架的并行处理。HDFS将每个文件分成等大的数据块(默认128M),然后分成多副本(默认3个)均匀的放在不同的节点上,解决了负载均衡和容错的问题,同时也支持计算框架的并行运算。