3

从我所读到的少量内容中,我了解到 Hadoop 非常适合处理以下一类问题——通过在可能的多个节点之间分配计算来回答一个庞大的问题。

Hadoop 是否旨在解决涉及多个计算的问题,在同一个数据集上,但每个都有不同的参数?例如,基于相同的主数据集,但使用不同的参数模拟不同的场景(例如,在相同的数据集上测试数据挖掘模型,但产生多次模拟迭代,每次迭代都有不同的参数集并找到最佳模型)

例如,对于一个预测天气的模型,它有一组具有不同权重的规则,Hadoop 是否支持运行相同的模型,但每个“节点”在学习集上以不同的权重值运行并比较预测结果以找到最佳模型?

或者这是 Hadoop 根本不适合做的事情?

4

1 回答 1

3

这并不是它的设计初衷。通常,您希望能够将数据集的不同部分分布到不同的节点。这是 hadoop 背后的主要思想之一:将庞大的数据集拆分到多个节点上,并将计算带到数据中。但是,它仍然绝对可以在不跳过太多圈子的情况下完成。

我不确定您对 MapReduce 范式有多熟悉,但您可以将模型的参数视为地图任务的“输入”。将数据集放在 HDFS 中的某个位置,并编写 MapReduce 作业,以便地图任务从 HDFS 中读取数据集,然后使用给定参数评估模型。所有的 map 输出都被发送到一个 reducer,它简单地输出给出最高分数的参数。如果您使输入文件(模型参数)的数量等于节点的数量,您应该每个节点获得一个地图任务,这就是您想要的。

于 2012-09-19T22:46:48.663 回答