Hadoop 适合运行我的模拟吗?

2022-09-03 05:42:53

在Java中编写了一个随机模拟,它从磁盘上的几个CSV文件加载数据(总共约100MB),并将结果写入另一个输出文件(没有太多数据,只是一个布尔值和几个数字)。还有一个参数文件,对于不同的参数,预计仿真输出的分布会发生变化。为了确定正确/最佳输入参数,我需要跨多个输入参数配置运行多个仿真,并查看每个组中输出的分布。每次模拟需要0.1-10分钟,具体取决于参数和随机性。

我一直在阅读有关Hadoop的信息,并想知道它是否可以帮助我运行大量模拟;在不久的将来,我可能会访问大约8台联网的桌面计算机。如果我理解正确,map函数可以运行我的模拟并吐出结果,并且化简器可能是恒等式。

我担心的是HDFS,它似乎意味着大文件,而不是少量的小CSV文件(没有一个足够大,甚至不足以构成64MB的最小推荐块大小)。此外,每个模拟只需要每个 CSV 文件的相同副本。

Hadoop对我来说是错误的工具吗?


答案 1

我在这里看到了很多答案,基本上是说,“不,你不应该使用Hadoop进行模拟,因为它不是为模拟而构建的。我认为这是一个相当短视的观点,类似于1985年有人说,“你不能使用PC进行文字处理,PC用于电子表格!

Hadoop是构建模拟引擎的绝佳框架。几个月来,我一直将其用于此目的,并且在小数据/大计算问题上取得了巨大成功。以下是我迁移到Hadoop进行模拟的5大原因(顺便说一句,使用R作为我的模拟语言):

  1. 访问:我可以通过 Amazon Elastic Map Reduce 租用 Hadoop 集群,而不必投入任何时间和精力来管理集群。这意味着我实际上可以开始在分布式框架上进行模拟,而无需在我的组织中获得管理批准!
  2. 管理:Hadoop以无形方式处理作业控制问题,如节点故障。我不必为这些条件编写代码。如果一个节点发生故障,Hadoop会确保为该节点安排的模拟市民在另一个节点上运行。
  3. 可升级:作为一个相当通用的map reduce引擎,具有出色的分布式文件系统,如果您以后遇到涉及大数据的问题,如果您习惯于使用Hadoop,则不必迁移到新的解决方案。因此,Hadoop为您提供了一个模拟平台,该平台也可以(几乎)免费扩展到大数据平台!
  4. 支持:由于开源并被许多公司使用,Hadoop的在线和离线资源数量很多。其中许多资源都是以“大数据”为假设编写的,但它们对于学习以地图减少的方式思考仍然很有用。
  5. 可移植性:我使用专有工具在专有引擎的基础上构建了分析,这需要相当多的学习才能开始工作。当我后来换工作,发现自己在一家没有相同专有堆栈的公司工作时,我不得不学习一套新的工具和一个新的模拟堆栈。再也不会了。我用SAS换取了R,用我们的旧网格框架换来了Hadoop。两者都是开源的,我知道我将来可以从事任何工作,并立即拥有触手可及的工具,开始踢屁股。

答案 2

如果您已经拥有Hadoop集群,则可以使Hadoop执行模拟,但它不是您所描述的那种应用程序的最佳工具。Hadoop是为处理大数据而构建的,而你没有大数据 - 你有大计算。

我喜欢Gearman(http://gearman.org/)的这种事情。


推荐