我想做一些非常基本的事情,只需通过EMR控制台启动Spark群集并运行依赖于Python包的Spark脚本(例如,Arrow)。做这件事最简单的方法是什么?如何在Amazon EMR上引导Python模块的安装?
18
A
回答
22
最直接的方法是创建一个包含安装命令的bash脚本,将其复制到S3,并从控制台设置引导操作以指向您的脚本。
下面是我在生产中使用的例子:
S3://mybucket/bootstrap/install_python_modules.sh
#!/bin/bash -xe
# Non-standard and non-Amazon Machine Image Python modules:
sudo pip install -U \
awscli \
boto \
ciso8601 \
ujson \
workalendar
sudo yum install -y python-psycopg2
4
总之,根据平台的不同,有两种方法可以使用pip安装软件包。首先,你安装任何你需要的,然后你可以运行你的Spark步骤。最简单的方法是使用EMR-4.0.0和“命令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,您可以使用脚本runner.jar以类似的方式,只是你有指定scriptrunner的完整URI。
编辑: 对不起,我没有看到你想通过控制台做到这一点。您也可以在控制台中添加相同的步骤。第一步是与上述相同的客户JAR。第二步是火花一步。希望这可以帮助!
+0
哪里'conn'来自 –
相关问题
- 1. Amazon EMR上的sqoop安装
- 2. 在Amazon EMR上安装Impala 2.3
- 3. 如何在mac上安装python模块
- 4. 如何在Python上安装模块?
- 5. 在EMR上的MRJob中导入模块
- 6. 如何安装python模块?
- 7. 如何安装Python模块
- 8. hadoop streaming:在EMR上导入模块
- 9. 引导Amazon EMR集群的spark-avro jar
- 10. 如何在EMR上安装Cloudera impala?
- 11. 安装Python模块
- 12. Amazon EMR上的引导操作有任何限制吗?
- 13. 安装python模块
- 14. 在EMR上安装GIT
- 15. 在EMR上安装RStudio
- 16. 如何在Amazon EMR实例中安装s3cmd
- 17. 如何安装VLC模块在Python
- 18. 安装Python模块
- 19. 如何为Python 2.7.10安装Python模块
- 20. 脚本来解压python 2.7在amazon EMR节点上的引导程序
- 21. 在Windows Vista上安装python ssl模块
- 22. 模块安装时导入Python ImportError [Ubuntu]
- 23. 如何在代码中的amazon EMR bootstrap动作上安装自定义包?
- 24. Python安装包不会导入模块
- 25. Python安装模块和导入
- 26. 如何在Amazon Elastic MapReduce(EMR)中导入本地Python包?
- 27. 如何运行安装的python模块
- 28. 如何在安装之前导入python模块?
- 29. 如何在运行时安装和导入Python模块?
- 30. 如何在RedHat上安装PyQt4模块?
这将安装EMR群集中某个节点上的软件包。我如何确保软件包安装在所有节点上? – Aliza
这会在所有节点上安装软件包 – noli