为什么在YARN集群模式下spark-submit没有在执行器上找到python包?

时间:2016-09-14 07:06:39

标签: python apache-spark pyspark

我正在使用boo.py(Spark 2.0)在AWS EMR上运行spark-submit脚本。

使用

时文件成功完成
python boo.py

然而,当我跑

时它失败了
spark-submit --verbose --deploy-mode cluster --master yarn  boo.py

登录yarn logs -applicationId ID_number显示:

Traceback (most recent call last):
File "boo.py", line 17, in <module>
import boto3
ImportError: No module named boto3

我正在使用的pythonboto3模块是

$ which python
/usr/bin/python
$ pip install boto3
Requirement already satisfied (use --upgrade to upgrade): boto3 in /usr/local/lib/python2.7/site-packages

如何附加此库路径以便spark-submit可以读取boto3模块?

1 个答案:

答案 0 :(得分:3)

当你运行spark时,部分代码在驱动程序上运行,而部分代码在执行程序上运行。

您是仅在驱动程序上安装boto3,还是在可能运行代码的驱动程序+所有执行程序(节点)上安装?

一种解决方案可能是 - 在所有执行器(节点)上安装boto3

如何在Amazon EMR节点上安装python模块

How to bootstrap installation of Python modules on Amazon EMR?