Hadoop-HDFS的特点
第一次写关于haodop的博客,希望大家多多指教。最近大数据也是越来越火,所以本人也在工作之余学习有关大数据的东东,希望多加点技能提升自己,要不然就要被淘汰咯。废话不多说,今天就分享下本人对HDFS的理解吧,如有不对,请大家多多指正哦。
HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。
为什么要选择HDFS
优点
- 高容错性
1.上传的数据自动保存多个副本。它是通过增加副本的数量,来增加它的容错性。
2.如果某一个副本丢失,HDFS机制会复制其他机器上的复本,而我们不必关注它的实现。 - 适合大数据的处理
1.能够处理GB,TB,甚至PB级别的数据。
2.能够处理百万规模的数据,数量非常的大。 - 流式文件写入
1.一次写入,多次读取。文件一旦写入,不能修改,只能增加。
2.这样可以保证数据的一致性。 - 可以装在廉价的机器上
这里主要指的当然是linux啦。
劣势
- 低延时数据访问
1.比如毫秒级的数据存储,它是做不到的。
2.它适合高吞吐率的场景,就是在某一时间内写入大量的数据。但是它在低延时的情况下是不行的,比如毫秒级以内读取数据,这样它是很难做到的。 - 小文件的存储
1.存放大量小文件的话,它会占用namenode的大量的内存在存储文件、目录、块信息。这样是不可取的,因为namenode的内存总是有限的。
2.小文件存储的寻道时间会超过文件的读取时间,这违背了HDFS的设计目标。 - 并发写入、文件随机修改
1.一个文件只能一个线程写,不能多个线程同时写。
2.仅支持文件的追加(append),不支持文件的随机修改。