Storm學習第一天

1.教程

在這個教程中你將學會如何創建Storm拓撲並將他們部署到Storm集羣中,下面主要使用java,但是爲了展現Storm是支持多語言的,所以我們部分代碼也會使用python

  1.1 前置條件

        這個教程使用了storm-starter項目,所以建議你把項目克隆並且跟隨者這些例子. 閱讀Setting up a development environment 和 Creating a new Storm project 去準備開發環境

1.2 搭建開發環境

這一頁列舉了你需要搭建環境的步驟:
下載Storm, 解壓它, 把解壓後的路徑增加到你的PATH中,爲了能夠開啓和關閉遠程的拓撲, ~/.storm/storm.yaml放置節點信息,下面更詳細的說明了上面的步驟

1.2.1 什麼是開發環境

Storm有二種操作模式: 本地模式和遠程模式. 在本地模式中, 你能在本地開發和測試你寫的拓撲. 在遠程模式中, 你把拓撲提交到集羣運行.
一個Storm開發環境有你能在本地模式開發和測試, 爲遠程模式執行而打包拓撲, 在遠程提交或者殺死拓撲的全部內容.
讓我們快速看一遍你的機器和遠程集羣的關係. 一個Storm集羣叫"Nimbus"的主節點管理的. 你的機器去和Nimbus通信去提交代碼 (打包成jar) 和拓撲們以便能在集羣上執行 , Nimbus把代碼分發到集羣上並且安排workers去運行你的topology(拓撲). 你的機器用storm命令行去和Nimbus通信. storm client只能在遠程模式下使用; 不能被用於本地 的開發和測試.

1.2.2 本地安裝Storm

如果你想要從你的機器提交topologies到遠程的集羣, 你應該現在本地安裝Storm. 本地安裝使得你能與遠程集羣通信. 爲了在本地安裝Storm, 下載並解壓到你的電腦的 任何一個地方. 把解壓後的路徑增加到你的path並且保證/bin/storm是可以執行的.

本地安裝只是使得你能與遠程集羣通信. 爲了在本地環境下開發測試一個拓撲, 建議你使用Maven來添加Storm依賴. 你能在Maven閱讀到更多

1.2.3 在遠程模式中開始和結束topologies

上一步讓你在本地安裝Storm是爲了讓你與遠程的集羣通信的. 現在你所需要做的就是告訴客戶端要與哪個Storm集羣通信. 爲了實現這個, 你所需要做的就是把master 的IP地址放置在~/.storm/storm.yaml文件中. 它的內容應該像是這樣:

         nimbus.host: "123.45.678.890"
可選擇的是, 如果你使用 storm-deploy項目在AWS上準備集羣, 他將要自動的設置~/.storm/storm.yaml. 你能自動的連接Storm集羣(或者在躲着集羣中轉換) 通過使用 

"attach" 命令, 像這樣:

         lein run :deploy --attach --name mystormcluster
1.3 創建一個新的Storm項目

這頁主要說明如何創建Storm項目. 步驟是:
把Storm jar增加到classpath,如果使用多種語言, 增加multilang目錄classpath,跟我來一起在eclipse中創建strom項目.

1.3.1 把Storm jar增加到classpath
爲了開發Storm topologies你需要發Storm jar增加到classpath. 強烈建議使用Maven. 這裏有一個開發Storm的pom.xml的例子. 如果你不使用Maven, 你能夠把jar包包 含在你的classpath中.爲了在Eclipse設置classpath, 創建一個新的java項目, 包含src/jvm/作爲一個原路徑, 並且確認有的的在lib/ 和 lib/dev/ 中的jar包都被引用.

1.3.2 爲了使用多語言,把多語言增加到classpath中
I如果你用不是java的其他語言實現spouts或者bolts, 這些文件應該在項目的multilang/resources/ 目錄下. 爲了讓Storm在本地模式中發現這個目錄, resources/ dir需要 在classpath中. 你能在eclipse中把multilang/作爲源文件夾加入進去就可以實現這一點. 也有可能需要添加multilang/resources源文件夾
爲了查看用其他語言寫topologies, 參考Using non-JVM languages with Storm.

爲了測試Eclipse的項目可以正常工作,你現在應該能運行 WordCountTopology.java文件. 將要看到持續10秒的信息打印







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章