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



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

当我使用

时,文件成功完成
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模块?

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

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

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

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

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

最新更新