我们正在考虑与我公司的Hadoop合作。通过查看互联网上的文档,我得到的印象是HDFS的想法是将其保存在RAM中以加快速度。现在我们的架构师说HDFS的主要思想是可扩展性。我很好。但后来他还声称主要想法就是把它放在硬盘上。 HDFS基本上是一个可扩展的硬盘。我的观点是,硬盘支持HDFS是一种选择。然而,主要的想法是将其保存在RAM中。谁现在?我现在真的很困惑,我认为这一点对于理解Hadoop至关重要。
谢谢,奥利弗
答案 0 :(得分:2)
奥利弗,你的建筑师是正确的。 水平可伸缩性是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
HTH