[
https://issues.apache.org/jira/browse/FLINK-2837?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15024605#comment-15024605
]
ASF GitHub Bot commented on FLINK-2837:
---------------------------------------
Github user mjsax commented on a diff in the pull request:
https://github.com/apache/flink/pull/1398#discussion_r45742093
--- Diff:
flink-contrib/flink-storm/src/test/java/org/apache/flink/storm/wrappers/WrapperSetupHelperTest.java
---
@@ -180,8 +178,6 @@ public void testCreateTopologyContext() {
builder.setBolt("bolt2", (IRichBolt) operators.get("bolt2"),
dops.get("bolt2")).allGrouping("spout2");
builder.setBolt("sink", (IRichBolt) operators.get("sink"),
dops.get("sink"))
.shuffleGrouping("bolt1",
TestDummyBolt.groupingStreamId)
- .shuffleGrouping("bolt1",
TestDummyBolt.shuffleStreamId)
- .shuffleGrouping("bolt2",
TestDummyBolt.groupingStreamId)
.shuffleGrouping("bolt2",
TestDummyBolt.shuffleStreamId);
--- End diff --
Well. From a Storm point of view, there is only `union`. As it is the
generic Storm case it includes the join case. I guess you specialized join
solution would be obsolete after generic union is supported. Therefore, I would
prefer to get it right from the beginning on... My idea would be to try to get
rid of `TwoInputBoltWrapper` and "union" the incoming streams somehow to feed a
single stream to `BoltWrapper`. The tricky part is, that we cannot use Flink's
`union` because it assume the same input type, but Storm can union different
types into one stream... What do you think about this idea?
> FlinkTopologyBuilder cannot handle multiple input streams
> ---------------------------------------------------------
>
> Key: FLINK-2837
> URL: https://issues.apache.org/jira/browse/FLINK-2837
> Project: Flink
> Issue Type: Bug
> Components: Storm Compatibility
> Reporter: Matthias J. Sax
> Assignee: Maximilian Michels
>
> 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:
> {noformat}
> 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);
> {noformat}
> will only print the data from a single source instead of all sources.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)