首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Amazon EMR上引导Python模块的安装?

如何在Amazon EMR上引导Python模块的安装?
EN

Stack Overflow用户
提问于 2015-07-21 03:41:13
回答 3查看 33.3K关注 0票数 44

我想做一些非常基本的事情,只需通过EMR控制台启动一个Spark集群,然后运行一个依赖于Python包的Spark脚本(例如,Arrow)。做这件事最直接的方法是什么?

EN

回答 3

Stack Overflow用户

发布于 2015-07-25 04:39:18

简而言之,有两种方法可以使用pip安装包,具体取决于平台。首先,你需要安装任何你需要的东西,然后你就可以运行你的Spark步骤了。最简单的方法是使用emr-4.0.0和'command-runner.jar':

from boto.emr.step import JarStep
>>> pip_step=JarStep(name="Command Runner",
...             jar="command-runner.jar",
...             action_on_failure="CONTINUE",
...             step_args=['sudo','pip','install','arrow']
... )
>>> spark_step=JarStep(name="Spark with Command Runner",
...                    jar="command-runner.jar",
...                    step_args=["spark-submit","/usr/lib/spark/examples/src/main/python/pi.py"]
...                    action_on_failure="CONTINUE"
)
>>> step_list=conn.add_jobflow_steps(emr.jobflowid, [pip_step,spark_step])

在2.x和3.x上,您以类似的方式使用script-runner.jar,只是您必须为scriptrunner指定完整的URI。

编辑:对不起,我不知道你想通过控制台来做这件事。您也可以在控制台中添加相同的步骤。第一步是使用与上面相同的参数创建一个客户JAR。第二步是火花步。希望这能有所帮助!

票数 10
EN

Stack Overflow用户

发布于 2020-09-28 06:18:56

这篇文章让我走上了正确的道路,但最终我选择了一个不同的解决方案。

boostrap.sh

#!/bin/bash

sudo python3 -m pip install \
    botocore \
    boto3 \
    ujson \
    warcio \
    beautifulsoup4  \
    lxml

create_emr_cluster.sh

#!/bin/bash

pem_file="~/.ssh/<your pem file>.pem"
bootstrap_path="s3://<path without filename>/"
subnet_id="subnet-<uniuqe subnet id>"
logs_path="s3://<log directory (optional)>/elasticmapreduce/"

aws s3 cp ./bootstrap.sh $bootstrap_path

ID=$(aws emr create-cluster \
--name spark-data-processing \
--use-default-roles \
--release-label emr-5.30.1 \
--instance-count 2 \
--application Name=Spark Name=Hive Name=Ganglia Name=Zeppelin \
--ec2-attributes KeyName=<your pem file>,SubnetId=$subnet_id \
--instance-type m4.large \
--bootstrap-actions Path=${bootstrap_path}bootstrap.sh \
--query ClusterId \
--output text \
--log-uri ${logs_path})

credit to感谢他的帮助

票数 2
EN

Stack Overflow用户

发布于 2021-03-31 21:16:58

对于Python 3-创建一个bash脚本:

#!/bin/bash -xe
sudo pip3 install your_package

将其复制到S3,并从控制台设置引导程序操作以指向您的脚本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31525012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档