- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试在 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/
我在 Ubuntu 14.04 上使用 Hadoop 2.5.1 现在我正在尝试使用 MultipleOutputs 类。这些作业可以在 8 行输入等小数据上正常运行。但是当我尝试用 1000 多行运
我尝试使用 BucketingSink 和自定义 ParquetSinkWriter 在 HDFS 上使用 Apache Flink 写入 parquet 文件。 这里是代码,上面的错误表明何时启用检
这段代码: File tmpFile = File.createTempFile(PREFIX_TMP, null, new File(reportPath)); logger.deb
我正在尝试在重新分区后将数据帧写入 s3 位置。但是,每当写入阶段失败并且 Spark 重试该阶段时,它就会抛出 FileAlreadyExistsException。 当我重新提交作业时,如果 sp
我在使用 Java 7 的 Files 类时遇到了一个看似奇怪的问题。我想在开始编写之前确保我的目录和文件存在以避免 FileNotFoundException,并且根据 Javadocs , cre
在我的代码中有一个用另一个文件替换一个文件的循环。 这是通过以下方式完成的: java.nio.file.Files.move(Path source, Path target, CopyOption
这个程序应该完成 MapReduce 工作。第一个作业的输出必须作为第二个作业的输入。 当我运行它时,出现两个错误: 线程“main”中的异常 org.apache.hadoop.mapred.Fil
这个问题在这里已经有了答案: How to overwrite the output directory in spark (9 个回答) 关闭 6 年前。 我正在运行这个命令行: hadoop f
我正在尝试以 JSON 格式将数据帧写入 s3 位置。但是,每当执行程序任务失败并且 Spark 重试该阶段时,它就会抛出 FileAlreadyExistsException。 A similar
我们正在使用 aws-java-sdk-1.7.4.jar hadoop-aws-2.7.5.jar 运行 Apache Spark 作业,以将 parquet 文件写入 S3 存储桶。 我们在 s3
我正在尝试将文件从InputStream复制到本地目录中。我创建了一个名为 test 的本地目录,它位于我的包根目录中。 public void copyFileFromInputStream(Inp
This question问了类似的问题。但是,就我而言,在调用 Files.createDirectories() 之前或之后该目录不存在。这种情况发生在 Oracle JDK 10.0.2 上。
即使成功运行了几十次 spark 程序,在最新的 sbt 包之后,最新的运行在启动 SparkContext 时出现 FileAlreadyExistsException: Note: I had r
我正在运行 dataFrame.rdd.saveAsTextFile("/home/hadoop/test") 试图将数据帧写入磁盘。这执行没有错误,但未创建文件夹。此外,当我再次运行相同的命令时(在
我使用以下代码通过 pyspark Insertinto 函数将数据帧写入配置单元分区表。 spark.conf.set("spark.sql.sources.partitionOverwriteMo
我在 reducer 中使用 MultipleOutputs。多重输出会将文件写入名为 NewIdentities 的文件夹。代码如下所示: private MultipleOutputs mos;
我正在写代码我正在用java nio api创建一个目录我的代码段是 Path target = Paths.get(""+folder_path+xx[0]); Set perms =
我试图在给定 here 的 Hadoop 中运行示例程序 当我尝试运行它时,我得到一个 org.apache.hadoop.mapred.FileAlreadyExistsException emil
我正在创建一个回滚功能,这是我想要实现的: 在与 data 文件夹 相同的位置创建一个 tmp 文件夹; 在执行任何操作之前,我将所有内容从data 文件夹 复制到tmp 文件夹(少量数据)。 回滚时
我正在尝试在 Amazon EMR 中运行 WordCount 程序,但我收到错误消息: Exception in thread "main" org.apache.hadoop.mapred.Fil
我是一名优秀的程序员,十分优秀!