Google app engine 从Google App Engine Mapreduce迁移到Apache Beam

Google app engine 从Google App Engine Mapreduce迁移到Apache Beam,google-app-engine,mapreduce,apache-beam,google-dataflow,Google App Engine,Mapreduce,Apache Beam,Google Dataflow,我长期使用Google App Engine的Mapreduce库处理Google数据存储中的数据。谷歌不再支持它,它在Python3中根本不起作用。我正在尝试将我们以前的Mapreduce作业迁移到Google的Dataflow/ApacheBeam runner,但是很糟糕,它只描述了ApacheBeam,并没有告诉您如何迁移 具体而言,问题是: 在Mapreduce中,作业将在现有部署的应用程序上运行。但是在Beam中,您必须创建并部署自定义Docker映像来构建数据流环境,对吗 要在Ma

我长期使用Google App Engine的Mapreduce库处理Google数据存储中的数据。谷歌不再支持它,它在Python3中根本不起作用。我正在尝试将我们以前的Mapreduce作业迁移到Google的Dataflow/ApacheBeam runner,但是很糟糕,它只描述了ApacheBeam,并没有告诉您如何迁移

具体而言,问题是:

  • 在Mapreduce中,作业将在现有部署的应用程序上运行。但是在Beam中,您必须创建并部署自定义Docker映像来构建数据流环境,对吗
  • 要在Mapreduce中创建新作业模板,只需编辑yaml文件并部署它。要在ApacheBeam中创建一个,您需要创建定制的runner代码,一个部署到google云存储的模板文件,并链接到docker映像,对吗
  • 上述数据准确吗?如果是这样,通常情况下使用数据流比Mapreduce困难得多吗?是否有任何库或技巧可以让这变得更容易

  • 从技术角度讲,这就是正在发生的事情,但除非您有一些特定的高级用例,否则您不需要手动设置任何自定义Docker映像。Dataflow在后台执行一些工作,在自定义容器上运行用户代码和依赖项,以便在其VM上执行用户编写的代码和依赖项

  • 在数据流中,编写作业模板主要需要用您选择的语言(Java或Python)编写一些管道代码,并可能编写一些元数据。编写代码后,创建和暂存模板本身与运行正常的数据流作业没有多大区别。有一个

  • 我同意关于Mapreduce到Beam迁移的页面非常稀疏,没有任何帮助,尽管我想我理解这是为什么。从Mapreduce迁移到Beam并不是一个简单的1:1迁移,只有语法发生了变化。这是一个不同的管道模型,很可能需要在某种程度上为迁移重写代码。完全涵盖所有内容的迁移指南最终会重复大部分现有文档


    因为听起来你们的大多数问题都是关于设置和执行梁管道的,所以我鼓励你们从开始。它不会教您如何编写管道,但会教您如何设置环境以编写和运行管道。“快速入门”中有一些链接,可以引导您访问Apache Beam教程,这些教程可以教您如何编写Beam API以及如何编写自己的管道,这些链接对于在Beam中重写Mapreduce代码非常有用。

    Beam的设置和使用比Mapreduce复杂得多。我知道Beam提供了更多的功能和灵活性,但我会想念mapreduce。