蓝盟IT小贴士,来喽!
一、HDFS的介绍
HDFS (HADOP DIST Ribute DFile System,HDFS )是hadoop生态系统的重要组成部分,是hadoop内的存储组件,在hadoop整体的地位不一般,也是最基础的部分。 因为数据存储、MapReduce等计算模型依赖于HDFS,HDFS是一种分布式文件系统,以流数据访问模式存储大文件,并将数据块存储在商业硬件集群中的不同机器上HDFS最初是作为Apache Nutch搜索引擎项目的基础结构开发的。 HDFS是Apache Hadoop Core项目的一部分。
分布式文件系统要解决的问题是大数据存储。 跨越多台计算机的存储系统。 分布式文件系统在大数据时代有着广泛的应用前景,为存储和处理大数据提供了必要的扩展性。
二、HDFS设计理念
硬件通常发生故障,但HDFS由数百台服务器组成,每个组件都可能发生故障。 因此,故障检测和自动快速恢复是HDFS核心体系结构的目标。 与一般应用程序不同,HDFS上的应用程序主要是流式数据HDFS,设计为适合批处理而不是用户交互。 实际上,与数据访问的响应时间相比,更注重数据访问的高吞吐量。 典型的HDFS文件大小为GB到TB的级别。 因此,HDFS被调整为支持大文件。 需要提供高聚合数据带宽,一个群集支持数百个节点,一个群集支持千万级别的文件。
大多数HDFS应用程序对文件的请求都是一次写入多次读取的访问模型。 一旦创建、写入或关闭一个文件,就不需要修改。 该假设简化了数据完整性问题,实现了高吞吐量的数据访问。
移动计算的成本比移动数据的成本低。 应用程序请求的计算越接近其操作的数据,效率就越高。 这在数据达到大容量级别时特别有效。 将计算移动到数据附近比将数据移动到应用程序要明显得多。
异构硬件和软件平台上的可移植性使得需要大数据集的应用程序可以更广泛地采用HDFS作为平台。
三、概念介绍
以下有必要介绍几个重要的概念
(1)大文件。 现在的hadoop集群可以存储数百TB到PB级别的数据。(2)流媒体数据访问。 HDFS的访问模式是一次写入、多次读取,关注读取整个数据集的整体时间。
(三)商用硬件。 由于HDFS集群的设备不需要那么昂贵和特殊,只要是日常使用的普通硬件即可,所以HDFS节点很可能发生故障,需要应对这种单点故障,确保数据可靠性的机制。
(4)不支持低延迟的数据访问。 hdfs对高数据吞吐量感兴趣,不适合需要低延迟数据访问的应用程序。
(5)不支持单用户写入、任意修改。 hdfs中的数据以读取为中心,仅支持单个写入者,写入操作始终以添加的形式添加到语句末尾,不支持在任意位置进行修改。
四、为什么需要HDFS?
1 .数据量巨大,磁盘开始处理我们需要的大量信息。 因此,文件系统需要大规模的数据分布式存储能力。
2 .读取一张磁盘上的所有数据需要很长的时间,写入需要更长的时间(写入时间通常是读取时间的3倍)。 即使文件为1ZB或10EB小,这些磁盘也无法跟踪读取。 因此,文件系统需要很高的并发访问能力。
数据集的大小超过一台独立物理计算机的存储能力时,需要将其分区后存储在多台独立计算机中。
4 .从概念图来看,分布化的文件系统在分布后的结构不完整,因此系统的复杂性增大,引入了网络编程,同样分布式文件系统变得更加复杂。 所以需要强大的容错能力。
5.HDFS解决方案以上的解决方案是片冗余、本地验证,需要数据块存储模型的数据冗余存储,将多个片文件直接传递到片后存储服务器进行验证。 冗余的平铺文件具有其他功能。 如果其中一个冗余平铺文件完整,则经过多次联合调整,其他平铺文件也会完整。
经过调整验证,无论传输错误、I/O错误、个别服务器停机时间如何,整个系统的文件都很完整。
6 .分散的文件系统有不可避免的问题。 由于文件不在一个磁盘上,因此会发生读取访问延迟。 这是HDFS目前面临的主要问题。
目前,HDFS配置已通过高数据吞吐量进行了优化,可能会牺牲较高的时间延迟。 不过幸运的是,HDFS具有很高的灵活性,可以针对具体的应用程序进行重新优化。
文/上海蓝盟 IT外包专家