[HADOOP] 스파크는 YARN이 아닌 로컬에서 실행됩니다.
HADOOP스파크는 YARN이 아닌 로컬에서 실행됩니다.
로컬 모드에서 잘 작동합니다. 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-Client를 실행하려면
spark-submit --master yarn-client globalHawk.py -i 20140817_011500_offer_init.dat -s kh_offers_schema4.txt4 -o txt.txt -d "|"
해결법
-
==============================
1.이 문제는 드라이버와 YARN 작업자에 서로 다른 버전의 Python이 있기 때문에 발생해야하며 YARN의 드라이버와 작업자에 기본적으로 동일한 버전의 Python을 사용하여 해결할 수 있습니다.
이 문제는 드라이버와 YARN 작업자에 서로 다른 버전의 Python이 있기 때문에 발생해야하며 YARN의 드라이버와 작업자에 기본적으로 동일한 버전의 Python을 사용하여 해결할 수 있습니다.
YARN에서 사용할 Python 버전을 다음과 같이 지정할 수도 있습니다.
PYSPARK_PYTHON=python2.6 bin/spark-submit xxx
(YARN 클러스터는 사용 가능하지 않으며 테스트되지 않음)
from https://stackoverflow.com/questions/28879803/spark-runs-in-local-but-not-in-yarn by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 시스템 디렉토리를 가져 오지 못했습니다-hadoop (0) | 2019.09.09 |
---|---|
[HADOOP] NodeManager에 대한 Windows 2008 R2 x64의 Hadoop 2.3.0 (0) | 2019.09.09 |
[HADOOP] 하둡 설정에서 NoClassDefFoundError (0) | 2019.09.09 |
[HADOOP] HBase에서 rowkey-search와 일치하는 COUNT 개의 행이 있습니까? (0) | 2019.09.09 |
[HADOOP] Hadoop MapReduce 스크립트에서 외부 라이브러리 가져 오기 (0) | 2019.09.09 |