我们正在考虑在我的公司中使用 Hadoop。通过查看 Internet 上的文档,我得到的印象是 HDFS 的想法是将其保存在 RAM 中以加快速度。现在我们的架构师说 HDFS 的主要思想是可扩展性。我很好。但随后他也声称主要想法是将其保留在硬盘上。HDFS 基本上是一个可扩展的硬盘。我的观点是通过硬盘支持 HDFS 是一种选择。然而,主要想法是将其保存在 RAM 中。现在是谁?我现在真的很困惑,我想说,这一点对于理解 Hadoop 至关重要。
谢谢,奥利弗
奥利弗,你的建筑师是对的。水平可扩展性是 HDFS(通常是 Hadoop)的最大优势之一。当您说 Hadoop 时,它意味着您正在处理大量数据,对吗?您将如何将这么多数据放入内存中?(我假设HDFS 的想法是将其保存在 RAM 中以加快您将 HDFS 中存储的数据保存在 RAM 中的速度)。
但是,HDFS 的元数据保存在内存中,以便您可以快速访问存储在 HDFS 中的数据。请记住,HDFS 不是物理的。它是一个虚拟文件系统,位于您的本机文件系统之上。因此,当您说要将数据存储到 HDFS 中时,它最终会存储在您机器磁盘上的本机/本地文件系统中,而不是 RAM。
话虽如此,HDFS 和本机 FS 的行为方式存在某些重大差异。与本地 FS 块大小相比,块大小非常大。类似地,数据存储在 HDFS 中的复制方式(想想 RAID,但在软件级别)。
那么 HDFS 如何让事情变得更快呢?
Hadoop 是一个分布式平台,而 HDFS 是一个分布式存储。当您将文件放入 HDFS 时,它会分成n 个小块(默认大小为 64MB,但可配置)。然后文件的所有块都存储在 Hadoop 集群的所有机器上。这使我们可以并行读取所有块,从而减少总读取时间。
我建议你通过这个链接来正确理解 HDFS: http ://hadoop.apache.org/docs/stable/hdfs_design.html
高温高压