hdfs特点

HDFS文件系统

1.HDFS特点

  1. HDFS文件系统可存储超大文件

每个磁盘都有默认的数据块大小,这是磁盘在对数据进行读和写时要求的最小单位,文件系统是要构建于磁盘上的,文件系统也有块的逻辑概念,通常使磁盘块的整数倍。

HDFS是一种文件系统,自身也有块(block)的概念,其文件块大小要比普通单一磁盘上文件系统大得多,1.x默认为64MB,2.x默认为128MB。

HDFS中块(block)的大小为什么设置为128M?

1.HDFS中平均寻址时间大概为10ms

2.经过前人的大量测试发现,寻址时间为传输时间的1%时,为最佳状态

所以最佳传输时间为10ms/0.01=1000ms=1s

3.目前磁盘的传输速率普遍为100MB/s

计算出最佳block大小:100MB/s x 1s = 100MB

所以设定为128MB

在实际工业生产中,若磁盘传输速率为200MB/s时,一般设定block大小为256MB,

若磁盘传输速率为400MB/s时,一般设定block大小为512MB

  1. 一次写入,多次读取

一个文件经过创建、写入和关闭之后就不需要改变,这个假设简化了数据一致性的问题,同时提高数据访问的吞吐量。

  1. 运行在普通廉价的机器上

Hadoop的设计对硬件要求低,无需昂贵的高可用性机器上,因为在HDFS设计中充分考虑到了数据的可靠性、安全性和高可用性。

2.不适用HDFS的场景

  1. 低延迟

HDFS不适用于实时查询这种对延迟要求高的场景,例如:股票实盘。往往应对低延迟数据访问场景需要通过数据库访问索引的方案来解决,Hadoop生态圈中的Hbase具有这种随机读、低延迟等特点。

  1. 大量小文件

对于Hadoop系统,小文件通常定义为远小于HDFS中block size(1.x默认64MB,2.x默认128MB)的文件,由于每个文件都会产生各自的Metadata元数据,Hadoop通过Namenode来存储这些信息(通常150字节),若小文件过多,容易导致Namenode存储出现瓶颈。

  1. 多用户更新

为了保证并发性,HDFS需要一次写入多次读取,目前不支持多用户写入,若要修改,也是通过追加的方式添加到文件的末尾处,出现太多文件需要更新的情况,Hadoop是不支持的。

针对有多人写入数据的场景,可以考虑采用Hbase的方案。

  1. 结构化数据

HDFS适合存储半结构化和非结构化数据,若有严格的结构化数据存储场景,也可以考虑采取Hbase的方案。

  1. 数据量不大

通常Hadoop使用于TB、PB数据,若待处理的数据只有几十GB的话,不建议使用Hadoop,因为没有任何好处。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章