开发者社区> 问答> 正文

集群模式下Flink如何确保同样的ID落在同一个节点上?

Flink on Yarn 集群里有几台机器组成的Yarn。
能从消息中方便的提取一个用户ID。现在在处理流的过程中,希望同一个ID落到同一个机器上来提高效率。
同时,希望partition by ID,然后编写针对同一个用户的流的处理算法,现在不知道如何下手。
还请大神指导一下……十分感谢

展开
收起
清雨影 2018-11-13 11:14:07 2464 0
2 条回答
写回答
取消 提交回答
  • 社区没人回答我就自己回答了吧……

    .partitionCustom(
                new Partitioner[Long] {
                    override def partition(key: Long, numPartitions: Int): Int = {
                        math.abs(MurmurHash3.arrayHash(Bytes.toBytes(key))) % numPartitions
                    }
                },
                _.getVehicleId
            )
    2019-07-17 23:13:50
    赞同 展开评论 打赏
  • 遇到了同样的问题,有没有会的大神

    2019-07-17 23:13:50
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载