spark任务级重试导致的clickhouse中数据不一致

2021-01-27  本文已影响0人  JX907

问题:

有个hive2clickhouse任务,在foreachPartition中的逻辑出错时会触发stage的容错,最终任务是成功状态,但clickhouse中的数据会存在重复。(失败前已经写过一部分,clickhouse的主键又不能保证数据一致性)

期望在失败时立即停止运行,由人工干预修复整个任务。

代码大致逻辑如下:

sql.toJavaRDD().repartition(10).foreachPartition(records -> {

// 控制批次写clichouse的逻辑,此处经常会遇到clickhouse负载大而失败

});

解决方案:

设置spark task失败后不再重试,对应参数为: spark.task.maxFailures

@Override

protected SparkConf getSparkConf() {

SparkConf conf = super.getSparkConf();

conf.set("spark.task.maxFailures", "1");

return conf;

}

参考:

https://blog.csdn.net/high2011/article/details/109288539

上一篇 下一篇

猜你喜欢

热点阅读