【问题标题】:Running EMR job from ECS Docker container从 ECS Docker 容器运行 EMR 作业
【发布时间】:2017-10-26 02:01:45
【问题描述】:

我已将用 python 编写的 ML 作业代码容器化到一个 docker 容器中,并且能够使用 Amazon ECS 作为 docker 服务运行。我想使用 Spark - Pyspark 以分布式方式运行并部署在 Amazon EMR 上。我可以在 ECS 和 EMR 之间建立连接吗?

【问题讨论】:

    标签: amazon-emr amazon-ecs


    【解决方案1】:

    配置服务:

    可在此处找到配置 EC2 实例以提交到 EMR 集群的步骤:

    上述链接中的缩短版适用于在 AWS 中运行的 docker:

    要从远程机器向 EMR 集群提交 Spark 作业,必须满足以下条件:

    1. 允许从远程机器到所有集群节点的网络流量。

    2. 所有 Spark 和 Hadoop 二进制文件都安装在远程计算机上。

    3. 远程机器上的配置文件指向 EMR 集群。

    分辨率

    确认允许从远程机器到所有集群节点的网络流量

    如果您将 EC2 实例用作远程机器或边缘节点:允许从该实例的安全组到每个集群节点的安全组的入站流量。 如果您使用自己的计算机:允许从您的计算机 IP 地址到每个集群节点的安全组的入站流量。 在远程机器上安装 Spark 和其他依赖的二进制文件

    安装二进制文件

    要安装二进制文件,请从 EMR 集群的主节点复制文件,如以下步骤所述。这是确保 EMR 集群和远程计算机上安装相同版本的最简单方法。

    1. 选择合适的 Docker 基础镜像。

    2. 将以下文件从 EMR 集群的主节点复制到 docker 映像。不要更改文件夹结构或文件名。

    /etc/yum.repos.d/emr-apps.repo
    /var/aws/emr/repoPublicKey.txt
    
    • ​这些文件将提供对 AWS 软件存储库的访问权限
    1. 在 docker 映像中运行以下命令以安装 Spark 和 Hadoop 二进制文件:
    sudo yum install -y hadoop-client
    sudo yum install -y hadoop-hdfs
    sudo yum install -y spark-core
    sudo yum install -y java-1.8.0-openjdk
    
    • 如果上述任何一项失败,请尝试从 EMR 主服务器复制 /etc/yum.repod.d/ 并重新运行它们。
    1. 运行以下命令在 Docker 镜像中创建文件夹结构:
    sudo mkdir -p /var/aws/emr/
    sudo mkdir -p /etc/hadoop/conf
    sudo mkdir -p /etc/spark/conf
    sudo mkdir -p /var/log/spark/user/
    sudo chmod 777 -R /var/log/spark/
    
    
    1. 将配置从 EMR 主服务器传输到您的 Docker 容器
    EMR master           Docker container
    /etc/spark/conf -->  /etc/spark/conf 
    /etc/hadoop/conf/ --> /etc/hadoop/conf/
    
    1. 在运行时,为将向 EMR 集群提交 Spark 作业的用户创建 HDFS 主目录。在以下命令中,将 spark 用户替换为您的用户名。
    hdfs dfs –mkdir /user/sparkuser
    hdfs dfs -chown sparkuser:sparkuser /user/sparkuser
    

    此时,如果您按照这些步骤操作,您应该能够从 Docker 容器内部运行,并且它将在您的 EMR 集群上执行。

    spark-submit --master yarn --deploy-mode cluster --class org.apache.spark.examples.SparkPi /usr/lib/spark/examples/jars/spark-examples.jar
    

    【讨论】:

    • 感谢 Maksim,我会尝试解决方案并更新您。
    猜你喜欢
    • 2018-10-10
    • 2018-12-27
    • 2019-04-08
    • 2016-08-29
    • 2016-09-24
    相关资源
    最近更新 更多