【问题标题】:EMR Spark deploy mode when using Docker使用 Docker 时的 EMR Spark 部署模式
【发布时间】:2022-11-07 02:41:06
【问题描述】:

我正在 AWS EMR 中部署一个 spark 作业,并使用 docker 打包我的所有依赖项。我的 pythonized spark submit 命令看起来像这样

    ...
    cmd = (
            f"spark-submit --deploy-mode cluster "
            f"spark-submit --deploy-mode {deploy_mode} "
            f"--conf spark.executorEnv.YARN_CONTAINER_RUNTIME_TYPE=docker "
            f"--conf spark.executorEnv.YARN_CONTAINER_RUNTIME_DOCKER_IMAGE={docker_image} "
            f"--conf spark.executorEnv.YARN_CONTAINER_RUNTIME_DOCKER_CLIENT_CONFIG={config} "
            f"--conf spark.executorEnv.YARN_CONTAINER_RUNTIME_DOCKER_MOUNTS=/etc/passwd:/etc/passwd:ro "
            f"--conf spark.yarn.appMasterEnv.YARN_CONTAINER_RUNTIME_TYPE=docker "
            f"--conf spark.yarn.appMasterEnv.YARN_CONTAINER_RUNTIME_DOCKER_IMAGE={docker_image} "
            f"--conf spark.yarn.appMasterEnv.YARN_CONTAINER_RUNTIME_DOCKER_CLIENT_CONFIG={config} "
            f"--conf spark.yarn.appMasterEnv.YARN_CONTAINER_RUNTIME_DOCKER_MOUNTS=/etc/passwd:/etc/passwd:ro "
            f"{path}"
        )
    ...

当我的deploy_mode 是集群时,它按预期工作,但是当deploy_mode 是客户端时,我看不到任何 docker 依赖项。任何人都可以帮助为什么会发生这种情况,这是否正常?

【问题讨论】:

    标签: amazon-web-services docker apache-spark amazon-emr spark-submit


    【解决方案1】:

    docker 容器由 Yarn 在 EMR 上管理:https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark-docker.html

    在客户端模式下,您的 Spark 驱动程序不会在 docker 容器中运行,因为该进程不受 Yarn 管理,它直接在运行 spark-submit 命令的节点上执行。 在集群模式下,您的驱动程序由 Yarn 管理,并在 docker 容器中执行。

    【讨论】:

      猜你喜欢
      • 2015-02-17
      • 1970-01-01
      • 2017-07-10
      • 2016-06-07
      • 2018-01-12
      • 1970-01-01
      • 2017-04-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多