Storm系列(一):搭建dotNet開發Storm拓撲的環境


上篇博客比較了目前流行的計算框架特性,如果你是 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系列文章

(一):搭建dotNet開發Storm拓撲的環境

(二):使用Csharp創建你的第一個Storm拓撲(wordcount)

(三):創建Maven項目打包提交wordcount到Storm集群

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM