Hadoop 分布式文件系统HDFS

Hadoop是Apache开源软件基金会开发的运行于大规模普通服务器上用于大数据存储、计算、分析的一种分布式存储系统和分布式运行框架。
其设计思想为使用普通机器(高性能、低成本)、数据冗余(HDFS)、并行化处理(MR)、移动计算(海量数据的情况下移动计算比移动数据更有效),其中思想基础为使用普通机器,只有做到高性能和低成本,使用门槛低,Hadoop项目才会迅速普及,被大家运用。
1.HDFS概念
HDFS(Hadoop分布式文件系统)是Apache Hadoop项目的一个子项目。
HDFS支持海量数据的存储,允许用户把成百上千的计算机组成存储集群,其中的每一台计算机称为一个节点。
用户通过HDFS的终端命令可以操作其中的文件和目录,如同操作本地文件系统(如Linux)中的文件一样。用户也可以通过HDFS API或MapReduce来编程访问其中的文件数据。
2.HDFS设计目标
能检测和快速恢复硬件故障
支持流式的数据访问
支持超大规模数据集
简化一致性模型
移动计算逻辑代价比移动数据代价低
具备良好的异构软硬件平台间的可移植性
3.HDFS工作原理
HDFS首先把大数据文件切分成若干个更小是数据块,再把这些数据块分别写入到不同节点之中。当用户需要访问文件时,为了保证能够读取每一个数据块,HDFS使用集群中的一个节点(元数据节点NameNode)专门用来保存文件的属性信息,包括文件名、所在目录以及每一个数据块的存储位置等,这样,客户端通过NameNode节点可获得数据块的位置,直接访问DataNode即可获得数据。就好像,去一个小区找朋友,但不知道他家在哪一栋,就可以去门卫室查询朋友信息地址等,这样就不用一栋一栋地去找了,提高了工作效率。
4.HDFS主要优点
支持超大文件存储——超大文件通常指数据规模在TB量级以上的文件
支持流式的访问数据——HDFS的设计建立在”一次写入,多次读写”的基础上,它将数据写入严格限制为一次只能写入一个数据,字节总是被附加到一个字节流的末尾,字节流总是以写入顺序先后存储。
运行于廉价的商用机器集群上——降低成本,普及率高