以下主要参考小象科技的董西成老师的视频
1. HDFS概述
2. HDFS基本架构和原理
3. HDFS程序设计
4. HDFS 2.0新特性
一、HDFS概述
HDFS是什么?
1、源自于Google的GFS论文,发表于2003年10月,HDFS是GFS克隆版
2、Hadoop Distributed File System,易于扩展的分布式文件系统,运行在大量普通廉价机器上,提供容错机制,为大量用户提供性能不错的文件存取服务
HDFS优点
1、高容错性
数据自动保存多个副本,副本丢失后,自动恢复
2、适合批处理
移动计算而非数据, 数据位置暴露给计算框架
3、适合大数据处理
GB、TB、甚至PB级数据,百万规模以上的文件数量,10K+节点规模
4、流式文件访问
一次性写入,多次读取,保证数据一致性
5、可构建在廉价机器上
通过多副本提高可靠性,提供了容错和恢复机制
HDFS缺点
1、低延迟数据访问
比如毫秒级,低延迟与高吞吐率
2、小文件存取
占用NameNode大量内存,寻道时间超过读取时间
3、并发写入、文件随机修改
一个文件只能有一个写者,仅支持append
二、HDFS基本架构和原理
HDFS架构
1、Namenode:
• 主Master(只有一个)
• 管理HDFS的名称空间
• 管理数据块映射信息
• 配置副本策略
• 处理客户端读写请求
2、SecondNameNode
• NameNode的热备;
• 定期合并fsimage和fsedits,推送给NameNode;
• 当Active NameNode出现故障时,快速切换为新的NameNode。
3、Datanode
• Slave(有多个)
• 存储实际的数据块
• 执行数据块读/写
4、Client
• 文件切分
• 与NameNode交互,获取文件位置信息;
• 与DataNode交互,读取或者写入数据;
• 管理HDFS;
• 访问HDFS。
HDFS数据块(block)
1、文件被切分成固定大小的数据块
默认数据块大小为64MB,可配置,若文件大小不到64MB,则单独存成一个block
2、为何数据块如此之大
数据传输时间超过寻道时间(高吞吐率)
3、一个文件存储方式
按大小被切分成若干个block,存储到不同节点上,默认情况下每个block有三个副本
HDFS副本放置策略<