aks*_*kar 9 amazon-ecs amazon-emr
我将用python编写的容器化ML作业代码放入docker容器中,并且能够使用Amazon ECS作为docker服务运行.我想使用Spark-Pyspark以分布式方式运行并在Amazon EMR上部署.我可以在ECS和EMR之间建立连接吗?
小智 2
配置 EC2 实例以提交到 EMR 集群的步骤可以在此处找到:
\n\n要将 Spark 作业从远程计算机提交到 EMR 集群,必须满足以下条件:
\n允许从远程计算机到所有集群节点的网络流量。
\n所有 Spark 和 Hadoop 二进制文件都安装在远程计算机上。
\n远程机器上的配置文件指向EMR集群。
\n确认允许从远程计算机到所有集群节点的网络流量
\n如果您使用 EC2 实例作为远程计算机或边缘节点: 允许从该实例的安全组到每个集群节点的安全组的入站流量。\n如果您使用自己的计算机: 允许来自您的计算机的入站流量\ 每个群集节点的安全组的 IP 地址。\n在远程计算机上安装 Spark 和其他依赖的二进制文件
\n要安装二进制文件,请从 EMR 集群的主节点复制文件,如以下步骤所述。这是确保 EMR 集群和远程计算机上安装相同版本的最简单方法。
\n选择合适的 Docker 基础镜像。
\namazonlinux:2镜像,可以在此处找到https://hub.docker.com/_/amazonlinux。将以下文件从 EMR 集群的主节点复制到 docker 镜像。不要更改文件夹结构或文件名。
\n/etc/yum.repos.d/emr-apps.repo\n/var/aws/emr/repoPublicKey.txt\nRun Code Online (Sandbox Code Playgroud)\nsudo yum install -y hadoop-client\nsudo yum install -y hadoop-hdfs\nsudo yum install -y spark-core\nsudo yum install -y java-1.8.0-openjdk\nRun Code Online (Sandbox Code Playgroud)\n/etc/yum.repod.d/从 EMR master 复制并重新运行它们。sudo mkdir -p /var/aws/emr/\nsudo mkdir -p /etc/hadoop/conf\nsudo mkdir -p /etc/spark/conf\nsudo mkdir -p /var/log/spark/user/\nsudo chmod 777 -R /var/log/spark/\n\nRun Code Online (Sandbox Code Playgroud)\nsudo yum install -y hadoop-client\nsudo yum install -y hadoop-hdfs\nsudo yum install -y spark-core\nsudo yum install -y java-1.8.0-openjdk\nRun Code Online (Sandbox Code Playgroud)\nhdfs dfs \xe2\x80\x93mkdir /user/sparkuser\nhdfs dfs -chown sparkuser:sparkuser /user/sparkuser\nRun Code Online (Sandbox Code Playgroud)\n此时,如果您按照这些步骤操作,您应该能够从 Docker 容器内部运行,并且它将在您的 EMR 集群上执行。
\nspark-submit --master yarn --deploy-mode cluster --class org.apache.spark.examples.SparkPi /usr/lib/spark/examples/jars/spark-examples.jar\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
819 次 |
| 最近记录: |