我正在使用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
我正在使用的python
和boto3
模块是
$ 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
模块?
答案 0 :(得分:3)
当你运行spark时,部分代码在驱动程序上运行,而部分代码在执行程序上运行。
您是仅在驱动程序上安装boto3,还是在可能运行代码的驱动程序+所有执行程序(节点)上安装?
一种解决方案可能是 - 在所有执行器(节点)上安装boto3
如何在Amazon EMR节点上安装python模块:
How to bootstrap installation of Python modules on Amazon EMR?