gpt4 book ai didi

java - yarn-cluster 模式下的 Apache Spark 抛出 Hadoop FileAlreadyExistsException

转载 作者:搜寻专家 更新时间:2023-11-01 03:35:27 26 4
gpt4 key购买 nike

我正在尝试在 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)。

这看起来像是 Hadoop 的一个功能,可以通知用户指定的输出目录已经有一些数据,如果您将在该作业的下一次迭代中使用相同的目录,这些数据将会丢失。

在我的应用程序中,我为作业提供了一个额外的参数 - -overwrite,我们这样使用它:

spark.hadoop.validateOutputSpecs = 覆盖标志的值

如果用户想要覆盖现有的输出,他可以将“覆盖”标志的值设置为真。

关于java - yarn-cluster 模式下的 Apache Spark 抛出 Hadoop FileAlreadyExistsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33256936/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com