我有一个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只能运行一次。