Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-2837

FlinkTopologyBuilder cannot handle multiple input streams

    XMLWordPrintableJSON

Details

    Description

      FlinkTopologyBuilder cannot handle multiple input streams correctly. Instead of union the incoming streams, it replicates the consuming bolt and each (logical) instance processes one of the input streams.

      For example:

      final FlinkTopologyBuilder builder = new FlinkTopologyBuilder();
      
      builder.setSpout(spoutId1, new FiniteRandomSpout(0, 10));
      builder.setSpout(spoutId2, new FiniteRandomSpout(1, 8));
      builder.setSpout(spoutId3, new FiniteRandomSpout(2, 13));
      
      builder.setBolt(boltId, new MergerBolt())
      	.shuffleGrouping(spoutId1)
      	.shuffleGrouping(spoutId2)
      	.shuffleGrouping(spoutId3);
      
      builder.setBolt("sink", new BoltPrintSink(new SimpleOutputFormatter()))
      	.shuffleGrouping(boltId);
      

      will only print the data from a single source instead of all sources.

      Attachments

        Activity

          People

            mjsax Matthias J. Sax
            mjsax Matthias J. Sax
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: