上篇博客比較了目前流行的計算框架特性,如果你是 Java 開發者,那么根據業務場景選擇即可;但是如果你是 .Net 開發者,那么三者都不能拿來即用,至少在這篇文章出現之前是如此。基於上篇文章的比較發現,Storm 應該是對多語言支持比較好的框架了,但即便如此,官方也沒有提供 .Net 的適配器,網上也找不到第三方的開源庫。So,Storm.Net.Adapter 出現了,一個使用 Csharp 開發的 針對 Apache Storm 的適配器!項目由本人開發,按照Apache License, Version 2.0開源。
本文是“Storm系列”的第一篇,后期會根據時間情況繼續更新!
安裝Storm與依賴環境
安裝Zookeeper
-
獲取最新 Zookeeper 程序包:官網
-
解壓程序包,拷貝 conf 下 zoo_sample.cfg 為 zoo.cfg,修改相關配置
-
Windows 環境下直接執行 bin\zkServer.cmd;Linux 下執行
bin/zkServer.sh start
安裝Python, Java與Maven
-
下載 Python 2.x 安裝
-
下載 JAVA 6+ 安裝,必須安裝 JDK 版,否則使用 Maven 時會出錯
-
下載 Maven 並安裝
下載Storm
-
獲取最新 Storm 程序包:官網
-
解壓后修改 conf 下的 storm.yaml 里的相關配置
配置環境變量
-
配置 Storm_Home 與 Java_Home; 目錄最好不要有空格
-
classPath 里增加
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\toos.jar;
-
path 里增加
%STORM_HOME%\bin;%JAVA_HOME%\bin;
-
將 Maven 的目錄也加到 path 方便使用
Storm啟動
-
啟動 Zookeeper
-
運行
storm nimbus
(如果未將 Storm 加到 path,需要先切換到 Storm 的 bin 目錄,下同) -
運行
storm supervisor
(集群環境下,非主可以僅執行該句) -
運行
storm ui
,通過 http://localhost:8080/ 監控 Storm 運行狀況
使用 Storm.Net.Adapter
獲取 Storm.Net.Adapter
目前有以下幾種方式獲取最新的 Storm.Net.Adapter 庫
-
通過源代碼編譯自己的版本: GitHub
-
下載編譯好的版本加入引用: Release
-
使用 NuGet 獲取最新版本(推薦):
PM> Install-Package Storm.Net.Adapter
創建示例項目
-
在項目中引用 Storm.Net.Adapter,創建 Spout (基於ISpout)和 Bolt (基於IBolt或IBasicBolt),都需要
using Storm;
-
創建一個使用 Maven 管理的 Java 項目,增加 dotNet 程序對應的 Topology
-
Windows(.Net Framework)平台下,你可以通過下面的方式來調用你的 Spout 或 Bolt:
super("cmd", "/k", "CALL", "StormSimple.exe", "generator");
-
Linux, Mac OSX, Windows(mono)平台下,你可以通過下面的方式來調用你的 Spout 或 Bolt:
super("mono", "StormSimple.exe", "generator");
打包與發布
-
拷貝編譯好的 dotNet 程序到 resources 目錄下,使用下面的 Maven 命令打包你的 Topology:
$ mvn package
-
通過 Storm 命令行工具提交你創建好的 Topology:
$ storm jar storm-starter-*-jar-with-dependencies.jar storm.starter.WordCountTopologyCsharp wordcount
Storm系列文章
(二):使用Csharp創建你的第一個Storm拓撲(wordcount)
(三):創建Maven項目打包提交wordcount到Storm集群