运行 Hadoop MR 作业是否可以使用 Google 的数据流?

Is it possible to run Hadoop MR jobs using Google's Dataflow?

是否可以使用 Google 的数据流服务 运行 Hadoop MR 作业?

我有 several 个 Hadoop MR 作业,我希望能够在 Dataflow 服务上 运行。我希望能够利用数据流服务而不必完全重写我的 Hadoop 作业。

为了使迁移更容易,我认为应该可以定义一个通用的 Dataflow Transform,它可以包装 Hadoop Mappers 和 Reducers,这样代码就可以在 Dataflow Pipelines 中重用。

这是一个非常小的实现 AvroMRTransform,它充当 AvroMapper 和 AvroReducer 的包装器(即它只能用于 Avro 数据的输入和输出)。

AvroMRTransform 有效,但几乎可以肯定存在它无法处理的情况。它也不支持一堆 Hadoop 功能,例如计数器。

出于这些原因,我不建议将此作为临时权宜之计(例如,您的应用程序包含许多 MR 作业并且您不想一次重写它们)。

Hadoop MR API 让我印象深刻,因为它非常庞大,因此最终使用 Dataflow 支持每个功能可能比重写您的应用程序需要更多的工作。