1

我们正在考虑在我的公司中使用 Hadoop。通过查看 Internet 上的文档,我得到的印象是 HDFS 的想法是将其保存在 RAM 中以加快速度。现在我们的架构师说 HDFS 的主要思想是可扩展性。我很好。但随后他也声称主要想法是将其保留在硬盘上。HDFS 基本上是一个可扩展的硬盘。我的观点是通过硬盘支持 HDFS 是一种选择。然而,主要想法是将其保存在 RAM 中。现在是谁?我现在真的很困惑,我想说,这一点对于理解 Hadoop 至关重要。

谢谢,奥利弗

4

1 回答 1

4

奥利弗,你的建筑师是对的。水平可扩展性是 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

高温高压

于 2013-08-01T13:23:22.993 回答