HDFS(一)——设计理念

248 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第11天,点击查看活动详情

前言

Hadoop生态现在已经成为了大数据计算,大数据分析,大数据挖掘等行业的统一解决方案。Hadoop是一个生态圈的总称,并不是单指一个具体的框架。比如Hadoop生态圈中包含了我们熟知三大件:HDFS,MapReduce,YARN。还有社区中诞生的其他比较知名的框架:Hive,Spark,HBase等等,它们都是专注于大数据的某一个方面的,框架之间互相都有进行交互,并且提供了很好的扩展性。因为圈子十分庞大,我们不可能掌握全部的精髓,我们也可以学习框架的思想,先专注于一个方面,学习完成之后,可以继续向外进行延伸。

那么今天我们就来了解一下Hadoop自身的三大件之一 —— HDFS。

HDFS设计理念

HDFS全称为Hadoop Distribution File System,它是Hadoop下的一个旗舰级的文件系统。具有高扩展性以及高可用性。首先HDFS是一个以流式数据方式访问超大文件,运行在商用集群之上的文件系统,它的设计理念具有以下几种:

  • 超大文件。HDFS上存储的都是几百MB,几百GB,几百TB的超大文件的。

  • 流式数据访问。HDFS上的文件的作用应该是一次存储,多次读取的形式,数据都可以通过数据源或者数据备份复制而来的。每次在HDFS上进行数据分析或者数据计算时,涉及的读取数据量应该是占数据集的大部分或者是整个数据集的。所以对于HDFS而言,读取整个数据集的时间延迟比读取第一条数据的时间延迟更为重要。

  • 商用硬件。HDFS不需要运行在高性能并且可靠的硬件上,它可以运行在我们日常生活中都可以购买到的商用硬件上的,HDFS自身会为其高可用性做出保证的。

  • 低时间延迟的数据访问。HDFS不适合上不适合运行低时间延迟的数据访问,例如几十毫秒之内就需要响应。它本身是为高数据吞吐量应用而设计的。低时间延迟的数据访问选择HBase更为适合

  • 大量的小文件。HDFS将文件相关的元数据信息存储在内存中,一个大的文件会被分为块大小的多个分块进行存储。

  • 多用户写入,任意修改。HDFS的文件写入支持单个写入者,写操作总是以只添加的形式在文件的末尾进行写入数据。不支持在任意位置进行修改操作。

总结

今天我们了解了HDFS的设计理念,对于HDFS有一个初步的概念。