<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 使用沒有jvm的語言編輯storm * 兩部分:創建topologies 以及 使用其他語言來實現 spouts 和bolts * 用另一種語言創建topologies 是比較容易的,因為topologies 用的是[thrift](link%20to%20storm.thrift) 的結構 * 用另一種語言實現 spouts 和 bolts 被稱為“multilang components ”或“shelling ” * 以下是協議的規范: [Multilang協議](Multilang-protocol.html) * thrift 結構允許你將多個組件明確定義為程序和腳本(例如,使用python編寫你的bolt 的文件) * 在Java中,您可以通過重寫ShellBolt或ShellSpout來創建multilang組件 * 請注意,輸出字段聲明發生在thrift 結構中,所以在java中創建multilang 組件需要按照以下方式 : * 在java中聲明字段,通過在shellbolt的構造函數中指定它來處理另一種語言的代碼 * multilang使用stdin / stdout上的json消息與子進程進行通信 * storm 帶有Ruby、Python和實現協議的奇特適配器。下面展示一個python的示例 ? ? ?- python支持emitting, anchoring, acking, 以及 logging * “storm shell ”命令使得構建jar和上傳到nimbus變得更加容易 ?- 創建jar以及上傳它 * 使用主機/端口nimbus和jarfile id來調用你的程序 ## 關于在非JVM語言中實現DSL的注意事項 正確的打開方式地方是src / storm.thrift。由于storm topologies 是Thrift結構,Nimbus是Thrift守護進程,您可以使用任何語言創建和提交topologies 。 當您為spouts 和bolts 創建Thrift結構體時,將在ComponentObject結構體中指定spout 或bolt 的代碼: ``` union ComponentObject { 1: binary serialized_java; 2: ShellComponent shell; 3: JavaObject java_object; } ``` 對于非JVM DSL,您需要使用“2”和“3”。 ShellComponent允許您指定運行該組件的腳本(例如,您的python代碼)。而JavaObject允許您為組件指定本地java的spout 和bolt (Storm將使用反射來創建該spout 或bolt )。 有一個“storm shell ”命令有助于提交topology 。它的用法是這樣的: ``` storm shell resources/ python topology.py arg1 arg2 ``` storm shell 會 resources/ 打成一個jar ,并上傳這個jar到Nimbus ,并像下面這樣調用你的topology.py腳本: ``` python topology.py arg1 arg2 {nimbus-host} {nimbus-port} {uploaded-jar-location} ``` 之后你可以使用Thrift API連接到Nimbus,并提交topology ,將{uploaded-jar-location}傳遞到submitTopology方法。為了方便參考我在下面展示了submitTopology類的定義。 ``` void submitTopology(1: string name, 2: string uploadedJarLocation, 3: string jsonConf, 4: StormTopology topology) throws (1: AlreadyAliveException e, 2: InvalidTopologyException ite); ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看