【问题标题】:Data Flow Flex Runner Fails on start数据流 Flex Runner 启动时失败
【发布时间】:2021-03-18 09:05:12
【问题描述】:

我创建了一个看起来像这样的简单光束管道

with beam.Pipeline(options=options) as pipeline: 
   (pipeline | 'readFile' >> ReadFromText(..)
             | 'parseJson' >> beam.Map(json.loads)
             | 'convertToRow' >> beam.Map(lambda x: beam.Row(a=str(x['a'])))
             | 'sql' >> SqlTransform(""" SELECT a FROM PCOLLECTION """)
             | 'print' >> beam.Map(print)
   )

并遵循此处提供的代码示例:https://cloud.google.com/dataflow/docs/guides/templates/using-flex-templates 能够将其作为弹性模板运行。这是我看到的错误

FileNotFoundError: [Error 2] No such file or directory: 'java': 'java'

我的(非常有限的)理解是,作为 flex 模板的一部分创建的 docker 映像只是在 Dataflow 上启动作业,所以不太明白为什么它抱怨 java 目录不存在。任何线索将不胜感激。

【问题讨论】:

    标签: google-cloud-dataflow apache-beam


    【解决方案1】:

    看来您需要将 java 安装到 container image 中,将 https://github.com/dockerfile/java/blob/master/openjdk-7-jre/Dockerfile#L11 之类的内容添加到 dockerfile 中。

    【讨论】:

    • 非常感谢您的回复!在容器上安装 java 解决了这个问题 :)
    猜你喜欢
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-25
    • 2014-07-18
    • 1970-01-01
    • 2018-06-18
    • 2018-05-26
    • 1970-01-01
    相关资源
    最近更新 更多