风暴拓扑:一对多(随机)

时间:2015-06-14 15:31:42

标签: java apache-kafka apache-storm

我使用 KafkaSpout spout来读取kafka主题上的所有(6)个分区。拓扑中的第一个螺栓必须将字节流转换为结构(通过IDL定义),在数据库中查找值并将这些值传递给第二个螺栓,将其全部写入 cassandra 。 / p>

发生了几个问题:

  1. 很多失败来自卡夫卡鲸鱼嘴。
  2. 第一个螺栓报告"容量" >来自风暴ui的2.0。
  3. 我试图提高并行度,但风暴似乎只能从 kafkaspout 到第一个螺栓接受1:1。我猜测#1是第一个螺栓超时的结果。

    我想做什么:让kafkaspouts(限于1 / kafka分区)能够将它们的位发送到随机的第一个螺栓,这样我就可以运行比#spout更多的这些。第一个和第二个螺栓为1:1,但第一个螺栓的喷口应为1:多。

    目前,我使用 LocalOrShuffleGrouping 连接 spout-> bolt-> bolt

    编辑:

    (重新)阅读风暴文档我看到这段话:

      

    随机分组:元组随机分布在螺栓的任务中,以确保每个螺栓都能获得相同数量的元组。

    然而,当我看到第一个螺栓的执行器上的负载时,我看到一切都集中在其中的6个 - 看似忽略其他24个。

    我在这里错过了一些大线索。

0 个答案:

没有答案