Pyspark spark作业的外部依赖性

Pyspark spark作业的外部依赖性,pyspark,yarn,emr,Pyspark,Yarn,Emr,我不熟悉大数据技术。我必须在EMR上以集群模式运行spark作业。该作业是用python编写的,它依赖于几个库和一些其他工具。我已经编写了脚本并在本地客户端模式下运行它。但是当我尝试使用Thread运行它时,它会产生一些依赖性问题。我如何管理这些依赖性 日志: "/mnt/yarn/usercache/hadoop/appcache/application_1511680510570_0144/container_1511680510570_0144_01_000002/pyspark.zip/

我不熟悉大数据技术。我必须在EMR上以集群模式运行spark作业。该作业是用python编写的,它依赖于几个库和一些其他工具。我已经编写了脚本并在本地客户端模式下运行它。但是当我尝试使用Thread运行它时,它会产生一些依赖性问题。我如何管理这些依赖性

日志:

"/mnt/yarn/usercache/hadoop/appcache/application_1511680510570_0144/container_1511680510570_0144_01_000002/pyspark.zip/pyspark/cloudpickle.py", line 711, in subimport
    __import__(name)
ImportError: ('No module named boto3', <function subimport at 0x7f8c3c4f9c80>, ('boto3',))

        at org.apache.spark.api.python.PythonRunner$$anon$1.read(PythonRDD.scala:193)
        at org.apache.spark.api.python.PythonRunner$$anon$1.<init>(PythonRDD.scala:234)
        at org.apache.spark.api.python.PythonRunner.compute(PythonRDD.scala:152)
        at org.apache.spark.api.python.PythonRDD.compute(PythonRDD.scala:63)
        at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:287)
        at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)
        at org.apache.spark.scheduler.Task.run(Task.scala:108)
        at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:335)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

您似乎还没有安装Boto 3库。 下载兼容的软件并使用下面的软件进行安装

$ pip install boto3
或者python-mpip安装-user boto3

希望这有帮助。你可以参考链接-https://github.com/boto/boto3

那么您似乎还没有在所有executorsnodes上安装boot 3。由于您运行的是spark,python代码部分在驱动程序和执行器上运行。如果需要,您需要在所有节点中安装该库

请参阅-

是,您可以-


aws emr创建群集-引导操作路径=,名称=引导操作1,参数=[arg1,arg2]-自动终止。请参阅下文-

您能在此处提供错误消息吗?我已添加错误消息我已安装boto3并使用在本地客户端模式下运行作业。它工作得很好。我在使用Thread时遇到了这个问题。所有节点上的boto3安装对您有效吗?谢谢您的帮助。我已经解决了这个问题。是否有任何方法可以使用cli在正在运行的群集上添加引导操作?