溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Storm編程入門知識點有哪些

發(fā)布時間:2021-12-23 11:51:31 來源:億速云 閱讀:269 作者:iii 欄目:云計算

這篇文章主要講解了“Storm編程入門知識點有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Storm編程入門知識點有哪些”吧!

Storm是什么? 什么是流式計算

    Storm是一個分布式實時計算框架, 適應于流式計算。 所謂流式計算,你可以把它想像成你家的電表,電在流過電表時,電表就要計算耗用量,電表對耗用量的計算就是典型的流式計算。

    下面介紹編程過程中需要用到的Storm的幾個概念:

  • Topology
        Topology似于Hadoop中的MapReduce Job,是一個用來編排、容納一組計算邏輯組件(Spout、Bolt)的對象(Hadoop MapReduce中一個Job包含一組Map Task、Reduce Task),這一組計算組件可以按照DAG圖的方式編排起來(通過選擇Stream Groupings來控制數據流分發(fā)流向),從而組合成一個計算邏輯更加強大的對象,那就是Topology。一個Topology運行以后就不能停止,它會無限地運行下去,除非手動干預(顯式執(zhí)行bin/storm kill )或意外故障(如停機、整個Storm集群掛掉)讓它終止。

  • Spout
        Spout是一個Topology消息源頭,是一個可持續(xù)不斷生產消息的組件,例如,它可以是一個Socket Server在監(jiān)聽外部Client連接并發(fā)送消息,可以是一個消息隊列(MQ)的消費者、可以是用來接收Flume Agent的Sink所發(fā)送消息的服務,等等。Spout生產的消息在Storm中被抽象為Tuple,在整個Topology的多個計算組件之間都是根據需要抽象構建的Tuple消息來進行連接,從而形成流。

  • Bolt
        Storm中消息的處理邏輯被封裝到Bolt中,任何處理邏輯都可以在Bolt里面執(zhí)行,處理過程和普通計算應用程序沒什么區(qū)別,只是需要根據Storm的計算語義來合理設置一下組件之間消息流的聲明、分發(fā)、連接即可。Bolt可以接收來自一個或多個Spout的Tuple消息,也可以來自多個其它Bolt的Tuple消息,也可能是Spout和其它Bolt組合發(fā)送的Tuple消息。

  • Stream Grouping
        Storm中用來定義各個計算組件(Spout、Bolt)之間流的連接、分組、分發(fā)關系。Storm定義了如下7種分發(fā)策略:Shuffle Grouping(隨機分組)、Fields Grouping(按字段分組)、All Grouping(廣播分組)、Global Grouping(全局分組)、Non Grouping(不分組)、Direct Grouping(直接分組)、Local or Shuffle Grouping(本地/隨機分組),各種策略的具體含義可以參考Storm官方文檔、比較容易理解。

示例代碼 storm-demo

     storm-demo是一個包含完整的storm topology的代碼示例,有詳盡的注釋。
源碼見: https://git.oschina.net/HuQingmiao/storm-demo.git

怎么把storm 程序跑起來

###本地模式      在本地開發(fā)時,不需要部署storm, 直接在eclipse或IntelliJ idea下運行即可,便于調試。      也可以通過命令行執(zhí)行: java -jar jar文件名 main入口類

###生產模式     先將你的應用程序打成jar包,但jar包中不要含有storm及相關日志包,即將storm及相關日志包的scope設為provided即可:

        <dependency>
            <groupId>org.apache.storm</groupId>
            <artifactId>storm-core</artifactId>
            <version>0.9.5</version>
            <scope>provided</scope>
        </dependency>

    再把應用程序jar包上傳到storm結點(Nimbus), 然后在結點上執(zhí)行指令:

   storm  jar  你的應用程序.jar  Main入口類   參數(topologId)
 或
   jstorm jar 你的應用程序.jar  Main入口類   參數(topologId)

    若要在在生產模式下停止這個topology,則執(zhí)行以下命令即可:

   storm  kill  參數(topologId)
或
   jstorm  kill  參數(topologId)

感謝各位的閱讀,以上就是“Storm編程入門知識點有哪些”的內容了,經過本文的學習后,相信大家對Storm編程入門知識點有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI