更新时间:2023年07月04日16时53分 来源:传智教育 浏览次数:
HDFS(Hadoop Distributed File System ),意为:Hadoop分布式文件系统。 是Apache Hadoop核心组件之一,HDFS是一种能够在普通硬件上运行的分布式文件系统,它是高度容错的,适应于具有大数据集的应用程序,它非常适于存储大型数据 (比如 TB 和 PB)。 HDFS使用多台计算机存储文件, 并且提供统一的访问接口, 像是访问一个普通文件系统一样使用分布式文件系统。
2003年的时候, Google 发表的论文为该问题提供了可行的解决方案。《分布式文件系统(GFS),可用于处理海量网页的存储》。Nutch的开发人员完成了相应的开源实现HDFS,并从Nutch中剥离和MapReduce成为独立项目HADOOP。
硬件故障(Hardware Failure)是常态, HDFS可能有成百上千的服务器组成,每一个组件都有可能出现故障。因此故障检测和自动快速恢复是HDFS的核心架构目标。HDFS上的应用主要是以流式读取数据(Streaming Data Access)。HDFS被设计成用于批处理,而不是用户交互式的。相较于数据访问的反应时间,更注重数据访问的高吞吐量。
典型的HDFS文件大小是GB到TB的级别。所以,HDFS被调整成支持大文件(Large Data Sets)。它应该提供很高的聚合数据带宽,一个集群中支持数百个节点,一个集群中还应该支持千万级别的文件。
大部分HDFS应用对文件要求的是write-one-read-many访问模型。一个文件一旦创建、写入、关闭之后就不需要修改了。这一假设简化了数据一致性问题,使高吞吐量的数据访问成为可能。
移动计算的代价比之移动数据的代价低。一个应用请求的计算,离它操作的数据越近就越高效。将计算移动到数据附近,比之将数据移动到应用所在显然更好。
HDFS被设计为可从一个平台轻松移植到另一个平台。这有助于将HDFS广泛用作大量应用程序的首选平台。
HDFS存储非常大的文件,比如成百上千MB、GB,甚至TB级别的文件, 一次写入多次读取,可以做到低成本部署,可以运行在廉价PC设备上,不需要特别高的配置。
HDFS存储非常大的文件,比如成百上千MB、GB,甚至TB级别的文件, 一次写入多次读取,可以做到低成本部署,可以运行在廉价PC设备上,不需要特别高的配置。
但不适合大量小文件,不支持频繁任意修改。延时要求在毫秒级别的应用,不适合采用 HDFS,HDFS是为高吞吐数据传输设计的,延时较高。