上篇博客比較了目前流行的計算框架特性,如果你是 Java 開發者,那麼根據業務場景選擇即可;但是如果你是 .Net 開發者,那麼三者都不能拿來即用,至少在這篇文章出現之前是如此。基於上篇文章的比較發現,Storm 應該是對多語言支持比較好的框架了,但即便如此,官方也沒有提供 .Net 的適配器,網上也找不到第三方的開源庫。So,Storm.Net.Adapter 出現了,一個使用 Csharp 開發的 針對 Apache Storm 的適配器!項目由本人開發,按照Apache License, Version 2.0開源。
本文是“Storm系列”的第一篇,後期會根據時間情況繼續更新!
獲取最新 Zookeeper 程序包:官網
解壓程序包,拷貝 conf 下 zoo_sample.cfg 為 zoo.cfg,修改相關配置
Windows 環境下直接執行 bin\zkServer.cmd;Linux 下執行 bin/zkServer.sh start
下載 Python 2.x 安裝
下載 JAVA 6+ 安裝,必須安裝 JDK 版,否則使用 Maven 時會出錯
下載 Maven 並安裝
獲取最新 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 方便使用
啟動 Zookeeper
運行 storm nimbus
(如果未將 Storm 加到 path,需要先切換到 Storm 的 bin 目錄,下同)
運行 storm supervisor
(集群環境下,非主可以僅執行該句)
運行 storm ui
,通過 http://localhost:8080/ 監控 Storm 運行狀況
目前有以下幾種方式獲取最新的 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
(一):搭建dotNet開發Storm拓撲的環境