【发布时间】:2016-08-29 14:42:56
【问题描述】:
我正在尝试以 yarn-cluster 模式执行我的 Spark 作业。它在独立模式和 yarn-client 模式下运行良好,但在集群模式下它会在 pairs.saveAsTextFile(output); 处抛出 FileAlreadyExistsException
这是我的工作实现:
SparkConf sparkConf = new SparkConf().setAppName("LIM Spark PolygonFilter").setMaster(master);
JavaSparkContext javaSparkContext = new JavaSparkContext(sparkConf);
Broadcast<IGeometry> boundryBroadCaster = broadcastBoundry(javaSparkContext, boundaryPath);
JavaRDD<String> file = javaSparkContext.textFile(input);//.cache();
JavaRDD<String> pairs = file.filter(new FilterFunction(params , boundryBroadCaster));
pairs.saveAsTextFile(output);
根据日志,它适用于一个节点,之后它开始为其余所有节点抛出此异常。
有人可以帮我解决它吗...?谢谢。
【问题讨论】:
-
禁用输出规范后,它正在工作:(
spark.hadoop.validateOutputSpecs=true)。在修复 FileAlreadyExistsException 后,作业因 Channel 关闭而失败,并使用参数fs.hdfs.impl.disable.cache = true修复。除了这些例外,我发现了许多已打开的错误。我从这些错误中找到了这些解决方法。我不知道这是正确的行为还是我遗漏了什么?
标签: java apache-spark hadoop-yarn