分享

sparkstreaming消费kafka 多分区如何保证顺序

kafka的一个topic里面来了几条消息,sparkstreaming需要按照顺序处理,但是topic是有多个分区的,除了把这几条消息放到一个分区里面,还有什么办法没有?
放在一个分区的话肯定就降低了并行度。

已有(5)人评论

跳转到指定楼层
s060403072 发表于 2018-7-19 12:39:02
目前没什么好办法,除非在消息里面标记顺序。
回复

使用道具 举报

哦润吉 发表于 2018-7-19 14:07:43
s060403072 发表于 2018-7-19 12:39
目前没什么好办法,除非在消息里面标记顺序。

消息中标记了顺序,sparkstreaming多个task在并行处理,不是同一个kafka分区的数据怎么确保他的顺序呢?
回复

使用道具 举报

s060403072 发表于 2018-7-19 20:17:53
哦润吉 发表于 2018-7-19 14:07
消息中标记了顺序,sparkstreaming多个task在并行处理,不是同一个kafka分区的数据怎么确保他的顺序呢?
...

想在什么地方保持顺序,如果顺序乱了,那就重新排序下。
回复

使用道具 举报

jixianqiuxue 发表于 2018-7-20 06:09:46
s060403072 发表于 2018-7-19 20:17
想在什么地方保持顺序,如果顺序乱了,那就重新排序下。

在多个分区,想保证顺序,肯定不可能的。这是不可掌控的。建议处理之后排序。具体需要根据业务逻辑,在其他地方排序。
楼主可尝试回答下面三个问题:
业务逻辑是什么?顺序处理的原因是什么?
处理之后在排序是否可以?

回复

使用道具 举报

xng2012 发表于 2018-7-20 06:40:59
既然已经序号了,可以消费完,在spark streaming中插入到有序则数据中
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条