Spark任务/执行器失败导致重复记录

whlutmcx  于 2022-11-25  发布在  Apache
关注(0)|答案(1)|浏览(187)

我有一个关于Spark作业的场景,希望了解其行为。场景:我正在使用JDBC连接器阅读数据并将其写入HDFS。
根据我的理解,即使执行程序/任务失败,相同的SQL查询也会在RDBMS上执行,HDFS中也不会有任何数据重复或丢失。如果我错了,请纠正我。
像S3这样的最终一致目标,它将如何表现。将它用作目标是否有任何问题?
像GCS桶这样的强一致目标,它会表现得如何。
先谢了

xdnvmnnf

xdnvmnnf1#

s3现在是完全一致的,但是重命名非常慢,并且如果目的地存在,重命名不一定会失败。你需要使用自定义的s3提交器(s3 a提交器,emr优化的提交器)来实现spark/mapreduce。详细信息请参考hadoop和EMR文档。
google gcs是一致的,但是它不执行原子重命名,因此依赖于原子dir重命名的v1提交协议是不安全的。v2在任何地方都是不安全的。
Apache Hadoop的下一个版本为gcs和abfs的性能和正确性增加了一个新的“中间清单提交器”。
最后,冰山在任何地方都是快速和安全。

相关问题