当我第一次跑步时
lines = sc.textFile(os.path.join(folder_name),100)
然后
parsed_lines=lines.map(lambda line: parse_line(line, ["udid"])).persist(StorageLevel.MEMORY_AND_DISK).groupByKey(1000).take(10)
我收到以下错误:
...
ERROR YarnClientSchedulerBackend: Asked to remove non-existent executor 21
...
WARN TaskSetManager: Lost task 0.1 in stage 11.7 (TID 1151, <machine name>): FetchFailed(null, shuffleId=0, mapId=-1, reduceId=896, message=
org.apache.spark.shuffle.MetadataFetchFailedException: Missing an output location for shuffle 0
我尝试更改以下参数以及groupbykey中的拆分数和textFile函数中的分区数。
conf.set("spark.cores.max", "128")
conf.set("spark.akka.frameSize", "1024")
conf.set("spark.executor.memory", "6G")
conf.set("spark.shuffle.file.buffer.kb", "100")
我不确定如何根据工人和#39;来决定这些参数。容量,输入大小和我将应用的转换。
答案 0 :(得分:0)
我收到了同样的错误。我通过减少我在spark-defaults.conf中请求的执行程序数来解决问题。
最初说:
spark.executor.instances 7
我把它改为:
spark.executor.instances 4
我没有改变任何其他事情,并且能够避免错误。