Apache Spark(Hadoop)两次写入_SUCCESS文件

时间:2019-02-25 21:22:15

标签: apache-spark hadoop parquet

我有一个Apache Spark作业,它将镶木地板数据集写入Azure Blob Storage V2。

我在Azure数据工厂中也有一个触发器,该触发器查找正在写入的_SUCCESS文件以开始其他处理。

写入似乎正在多次写入或触摸_SUCCESS文件,这似乎不是Hadoop的commitJob函数(https://hadoop.apache.org/docs/r2.4.1/api/src-html/org/apache/hadoop/mapreduce/lib/output/FileOutputCommitter.html#line.305)中的预期行为

_SUCCESS文件通常在原始写入的同一秒或接近同一秒的时间内被重写/修改。

有两个核心问题: 1)这是预期的行为吗? 2)是否有可能进行配置更改,以确保如果作业成功,则将准确进行1个_SUCCESS文件写入? (我知道可以禁用_SUCCESS写入,但这很有用)

在Hadoop文档中,很明显,保证commitJob只能运行一次。

https://hadoop.apache.org/docs/stable/api/org/apache/hadoop/mapred/FileOutputCommitter.html#commitJob(org.apache.hadoop.mapred.JobContext)

0 个答案:

没有答案