es for hadoop在导入es时出现异常version conflict, document already exists

异常
(stderr) Caused by: org.elasticsearch.hadoop.rest.EsHadoopInvalidRequest: Found unrecoverable error [10.6.102.222:9200] returned Conflict(409) - [t_order_no_sign][2020-12-29_2020-12-30_06:00:00:YT5160162222002:FTX_STD]: version conflict, document already exists (current version [1]); Bailing out..

原因
这次的订单跟踪明细写入的问题还是因为当时资源不足导致任务启动了推测执行机制,导致执行慢的task在另外的节点上重新启动了,并更新了同一条记录。目前我们的es表都是带主键更新的,所以会产生锁,这个同时更新会导致报错。

处理
我们目前关闭了推测执行,set mapreduce.reduce.speculative=false;
并增加了外部表参数中update的重试次数。'es.update.retry.on.conflict'='3'

你可能感兴趣的:(es for hadoop在导入es时出现异常version conflict, document already exists)