python - Spark 在本地运行但不在 YARN 中运行

标签 python hadoop apache-spark

我在本地模式下运行得很好。当我在 YARN 模式下运行时,出现以下错误:

我收到此错误:

 File "/hdfs15/yarn/nm/usercache/jvy234/filecache/11/spark-assembly-1.1.0-cdh5.2.1-hadoop2.5.0-cdh5.2.1.jar/pyspark/worker.py", line 79, in main
    serializer.dump_stream(func(split_index, iterator), outfile)
  File "/hdfs15/yarn/nm/usercache/jvy234/filecache/11/spark-assembly-1.1.0-cdh5.2.1-hadoop2.5.0-cdh5.2.1.jar/pyspark/serializers.py", line 196, in dump_stream
    self.serializer.dump_stream(self._batched(iterator), stream)
  File "/hdfs15/yarn/nm/usercache/jvy234/filecache/11/spark-assembly-1.1.0-cdh5.2.1-hadoop2.5.0-cdh5.2.1.jar/pyspark/serializers.py", line 127, in dump_stream
    for obj in iterator:
  File "/hdfs15/yarn/nm/usercache/jvy234/filecache/11/spark-assembly-1.1.0-cdh5.2.1-hadoop2.5.0-cdh5.2.1.jar/pyspark/serializers.py", line 185, in _batched
    for item in iterator:
  File "/home/jvy234/globalHawk.py", line 84, in <lambda>
TypeError: 'bool' object is not callable

        org.apache.spark.api.python.PythonRDD$$anon$1.read(PythonRDD.scala:124)
        org.apache.spark.api.python.PythonRDD$$anon$1.<init>(PythonRDD.scala:154)
        org.apache.spark.api.python.PythonRDD.compute(PythonRDD.scala:87)
        org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)
        org.apache.spark.CacheManager.getOrCompute(CacheManager.scala:61)
        org.apache.spark.rdd.RDD.iterator(RDD.scala:227)
        org.apache.spark.api.python.PythonRDD$WriterThread$$anonfun$run$1.apply$mcV$sp(PythonRDD.scala:209)
        org.apache.spark.api.python.PythonRDD$WriterThread$$anonfun$run$1.apply(PythonRDD.scala:184)
        org.apache.spark.api.python.PythonRDD$WriterThread$$anonfun$run$1.apply(PythonRDD.scala:184)
        org.apache.spark.util.Utils$.logUncaughtExceptions(Utils.scala:1319)
        org.apache.spark.api.python.PythonRDD$WriterThread.run(PythonRDD.scala:183)

我的脚本中的第 84 行是:

dataSplit = dataFile.map(lambda line: line.split(deli))

本地运行:

spark-submit --master local globalHawk.py -i 20140817_011500_offer_init.dat -s kh_offers_schema4.txt4 -o txt.txt -d "|"

运行 Yarn 客户端:

spark-submit --master yarn-client globalHawk.py -i 20140817_011500_offer_init.dat -s kh_offers_schema4.txt4 -o txt.txt -d "|"

最佳答案

此问题应该是由于驱动程序和 YARN Worker 中的 Python 版本不同引起的,可以通过在 YARN 中的驱动程序和 Worker 中使用默认的相同版本的 Python 来修复。

您还可以通过以下方式指定在 YARN 中使用哪个版本的 python:

PYSPARK_PYTHON=python2.6 bin/spark-submit xxx

(没有可用的 YARN 集群,未测试)

关于python - Spark 在本地运行但不在 YARN 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28879803/

相关文章:

hadoop - YARN的内存终止限制问题

csv - Spark 2.1 无法在 CSV 上写入 Vector 字段

python - Pandas - 计算字符字段中逗号的数量

python - rbenv 和 MacPorts 的路径位置

hadoop - 我如何使用 sqoop 从 HDFS 导入并在导入时合并表的两列?

scala - 在 spark-kafka 中使用 schema 将 ConsumerRecord 值转换为 Dataframe

python - pyspark 在将 rdd 转换为数据帧时对 mapPartitions 使用一个任务

python - 升级到 Catalina 后找不到 Pandas 和 Jupyter

python - selenium.common.exceptions.WebDriverException : Message: Service chromedriver unexpectedly exited. 状态代码为:1

hadoop - Hadoop集群节点数