[ https://issues.apache.org/jira/browse/STORM-789?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14501695#comment-14501695 ]
ASF GitHub Bot commented on STORM-789: -------------------------------------- Github user HeartSaVioR commented on the pull request: https://github.com/apache/storm/pull/525#issuecomment-94240470 You can temporary change multilang_test.clj to make spout -> bolt -> bolt topology. ```clojure (defn test-multilang [executor file-extension] (with-local-cluster [cluster :supervisors 4] (let [nimbus (:nimbus cluster) topology (thrift/mk-topology {"1" (thrift/mk-shell-spout-spec [executor (str "tester_spout." file-extension)] ["word"])} {"2" (thrift/mk-shell-bolt-spec {"1" :shuffle} [executor (str "tester_bolt." file-extension)] ["word"] :parallelism-hint 1) "3" (thrift/mk-shell-bolt-spec {"2" :local-or-shuffle} [executor (str "tester_bolt." file-extension)] ["word"] :parallelism-hint 1)})] (submit-local-topology nimbus "test" {TOPOLOGY-WORKERS 20 TOPOLOGY-MESSAGE-TIMEOUT-SECS 3 TOPOLOGY-DEBUG true} topology) (Thread/sleep 10000) (.killTopology nimbus "test") (Thread/sleep 10000) ))) ``` Here's Spout. ``` { "task->component":{ "20":"__acker", "21":"__acker", "22":"__acker", "23":"__acker", "1":"1", "3":"3", "2":"2", "5":"__acker", "4":"__acker", "7":"__acker", "6":"__acker", "9":"__acker", "8":"__acker", "11":"__acker", "10":"__acker", "13":"__acker", "12":"__acker", "15":"__acker", "14":"__acker", "17":"__acker", "16":"__acker", "19":"__acker", "18":"__acker" }, "stream->target->grouping":{ "default":{ "2":"SHUFFLE" } }, "streams":[ "default" ], "stream->outputfields":{ "default":[ "word" ] }, "taskid":1, "source->stream->grouping":{ }, "componentid":"1" } ``` Bolt 1. ``` { "task->component":{ "20":"__acker", "21":"__acker", "22":"__acker", "23":"__acker", "1":"1", "3":"3", "2":"2", "5":"__acker", "4":"__acker", "7":"__acker", "6":"__acker", "9":"__acker", "8":"__acker", "11":"__acker", "10":"__acker", "13":"__acker", "12":"__acker", "15":"__acker", "14":"__acker", "17":"__acker", "16":"__acker", "19":"__acker", "18":"__acker" }, "stream->target->grouping":{ "default":{ "3":"LOCAL_OR_SHUFFLE" } }, "streams":[ "default" ], "stream->outputfields":{ "default":[ "word" ] }, "taskid":2, "source->stream->grouping":{ "1":{ "default":"SHUFFLE" } }, "componentid":"2" } ``` Bolt 2. ``` { "task->component":{ "20":"__acker", "21":"__acker", "22":"__acker", "23":"__acker", "1":"1", "3":"3", "2":"2", "5":"__acker", "4":"__acker", "7":"__acker", "6":"__acker", "9":"__acker", "8":"__acker", "11":"__acker", "10":"__acker", "13":"__acker", "12":"__acker", "15":"__acker", "14":"__acker", "17":"__acker", "16":"__acker", "19":"__acker", "18":"__acker" }, "stream->target->grouping":{ }, "streams":[ "default" ], "stream->outputfields":{ "default":[ "word" ] }, "taskid":3, "source->stream->grouping":{ "2":{ "default":"LOCAL_OR_SHUFFLE" } }, "componentid":"3" } ``` Looks really fine. > Enhance topology context sent to multi-lang bolts and spouts > ------------------------------------------------------------ > > Key: STORM-789 > URL: https://issues.apache.org/jira/browse/STORM-789 > Project: Apache Storm > Issue Type: Improvement > Reporter: Dan Blanchard > Assignee: Dan Blanchard > > I'm about to submit a pull request that adds a lot more contextual > information to the "context" JSON dictionary that gets sent to multi-lang > bolts and spouts as part of their initial handshake. These additions will > make is so non-JVM developers have access to the sources, targets, and field > names for their bolts and spouts. > We will add support for this in streamparse (one of the more popular Python > libraries for Storm) as soon as this gets merged in. > Here are the details of what I've added: > - componentid: the component ID for this task, so you don't have to look it > up > in "task->component" by "taskid" > - streams: a list of all of the streams for this task > - stream->outputfields: a mapping from stream names to output fields for > that > stream > - stream->target->grouping: a mapping from stream names to the targets for > this > task to the kind of grouping they use. > - sources->grouping: a mapping from the component IDs of the sources to > their > grouping. > Note on groupings: groupings are either represented as a string (e.g., > "SHUFFLE") or a list of strings for field groupings. -- This message was sent by Atlassian JIRA (v6.3.4#6332)