优点:
可构建在廉价机器上 通过多副本提高可靠性,提供了容错和恢复机制 高容错性 数据自动保存多个副本,副本丢失后,自动恢复 适合批处理 移动计算而非数据,数据位置暴露给计算框架 适合大数据处理 GB、TB、甚至 PB 级数据,百万规模以上的文件数量,10K+节点规模 流式文件访问 一次性写入,多次读取,保证数据一致性 |
缺点(请你记住我的缺点,就像结婚,你只有接受我的缺点才能永远的在一起,而不是谈恋爱,只要知道我的优点就行了,面试的时候可能会问有什么缺点):
不适用一下操作:
低延迟数据访问 比如毫秒级 低延迟与高吞吐率 小文件存取 占用 NameNode 大量内存 150b* 1000W = 15E,1.5G 寻道时间超过读取时间 并发写入、文件随机修改 一个文件只能有一个写者 仅支持 append |
hdfs不适合存储的小文件
元信息存储在 NameNode 内存中 一个节点的内存是有限的 存取大量小文件消耗大量的寻道时间 类比拷贝大量小文件与拷贝同等大小的一个大文件 NameNode 存储 block 数目是有限的 一个 block 元信息消耗大约 150 byte 内存 存储 1 亿个 block,大约需要 20GB 内存 如果一个文件大小为 10K,则 1 亿个文件大小仅为 1TB(但要消耗掉 NameNode 20GB 内存) |