美文网首页
flink 问题总结(7)下一级任务没有keyby导致的错误

flink 问题总结(7)下一级任务没有keyby导致的错误

作者: ZYvette | 来源:发表于2020-06-17 20:44 被阅读0次

    请移步 flink问题总结目录 (不断更新中)

    问题:

    任务处理中会出现没有正确分组的问题。
    如下图:第三级处理的结果有误。

    分析原因:

    修改前

    上图任务可以看到第一级处理之后,有keyby操作,而2到3级之间没有keyby,所以是rebalance操作。

    解决办法:

    方法一:如果第三级需要和上级一样根据用户id 分到同一个现成的话会出现问题,所以需要对第二级操作之后也keyby。


    修改后

    方法二:如果二级和三级处理可以转为operator-chain,那么可以不用2到3级中间可以不用keyby操作。因为operatorchain会将任务在同一个task里执行。

    mongo问题

    mongo中使用updateOne方法,如果同一个key,两个线程同时写会报错

    E11000 duplicate key error collection
    

    原因:

    update操作是先查询是否存在,不存在会插入。当两个任务同时都查询到不存在时,都会执行insert操作,所以会报错重复key。

    解决办法:

    加锁,或者任务顺序执行。

    相关文章

      网友评论

          本文标题:flink 问题总结(7)下一级任务没有keyby导致的错误

          本文链接:https://www.haomeiwen.com/subject/uokexktx.html