這篇文章主要講解了“Storm編程入門知識點有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Storm編程入門知識點有哪些”吧!
在沿灘等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都網站建設、網站制作 網站設計制作按需策劃,公司網站建設,企業(yè)網站建設,高端網站設計,營銷型網站建設,外貿營銷網站建設,沿灘網站建設費用合理。
Storm是一個分布式實時計算框架, 適應于流式計算。 所謂流式計算,你可以把它想像成你家的電表,電在流過電表時,電表就要計算耗用量,電表對耗用量的計算就是典型的流式計算。
下面介紹編程過程中需要用到的Storm的幾個概念:
Topology
Topology似于Hadoop中的MapReduce Job,是一個用來編排、容納一組計算邏輯組件(Spout、Bolt)的對象(Hadoop MapReduce中一個Job包含一組Map Task、Reduce Task),這一組計算組件可以按照DAG圖的方式編排起來(通過選擇Stream Groupings來控制數(shù)據流分發(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 topology的代碼示例,有詳盡的注釋。
源碼見: https://git.oschina.net/HuQingmiao/storm-demo.git
###本地模式 在本地開發(fā)時,不需要部署storm, 直接在eclipse或IntelliJ idea下運行即可,便于調試。 也可以通過命令行執(zhí)行: java -jar jar文件名 main入口類
###生產模式 先將你的應用程序打成jar包,但jar包中不要含有storm及相關日志包,即將storm及相關日志包的scope設為provided即可:
org.apache.storm storm-core 0.9.5 provided
再把應用程序jar包上傳到storm結點(Nimbus), 然后在結點上執(zhí)行指令:
storm jar 你的應用程序.jar Main入口類 參數(shù)(topologId) 或 jstorm jar 你的應用程序.jar Main入口類 參數(shù)(topologId)
若要在在生產模式下停止這個topology,則執(zhí)行以下命令即可:
storm kill 參數(shù)(topologId) 或 jstorm kill 參數(shù)(topologId)
感謝各位的閱讀,以上就是“Storm編程入門知識點有哪些”的內容了,經過本文的學習后,相信大家對Storm編程入門知識點有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!