上篇博客比较了目前流行的计算框架特性,如果你是 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集群

Storm系列(一):搭建dotNet开发Storm拓扑的环境的更多相关文章

  1. 第五章——搭建S3C6410开发板的测试环境

    搭建S3C6410开发板的测试环境 通过本章的学习学会了如何在开发板上安装Android.开发板是学习和开发嵌入式技术的主要硬件设备,想要顺利的通过linux驱动访问硬件,是不能在PC板上模拟的,需要 ...

  2. 第五章 搭建S3C6410开发板的测试环境

    在PC上可以开发Linux驱动,重新编译成ARM架构的Linux驱动模块,但最后还是要在开发板上进行测试.目前最流行的是基于三星S3C6410 ARM11架构的开发板,很多厂商在其基础上进行了扩展,开 ...

  3. 【雕爷学编程】MicroPython动手做(02)——尝试搭建K210开发板的IDE环境

    喜欢今日头条,偶然看到广告,半个多月前交了8.9元,报名参加了头条上Python的四天培训课,呵呵,总算是有了零的开始(还是有点收获的,见https://www.sohu.com/a/38112874 ...

  4. 搭建S3C6410开发板的测试环境

      因为ARM架构的开发板可基于X86架构的PC在CPU指令以及二进制上都有所不同,而且如果linux驱动需要访问硬件,这些硬件很难在PC上模拟,所以就需要我们在带有这些硬件的开发板上进行调试和测试. ...

  5. 第5章 搭建S3C6410开发板的测试环境

    1.使用Eboot擦除NandFlash的方法如下: 第一步:准备工作 用串口线或USB转串口线连接开发板和PC,并启动minicom 第二步:进入Eboot状态 打开OK6410开发板的电源开关,过 ...

  6. Storm系列(二):使用Csharp创建你的第一个Storm拓扑(wordcount)

    WordCount在大数据领域就像学习一门语言时的hello world,得益于Storm的开源以及Storm.Net.Adapter,现在我们也可以像Java或Python一样,使用Csharp创建 ...

  7. Storm系列(三):创建Maven项目打包提交wordcount到Storm集群

    在上一篇博客中,我们通过Storm.Net.Adapter创建了一个使用Csharp编写的Storm Topology - wordcount.本文将介绍如何编写Java端的程序以及如何发布到测试的S ...

  8. Storm系列二: Storm拓扑设计

    Storm系列二: Storm拓扑设计 在本篇中,我们就来根据一个案例,看看如何去设计一个拓扑, 如何分解问题以适应Storm架构,同时对Storm拓扑内部的并行机制会有一个基本的了解. 本章代码都在 ...

  9. Storm 系列(五)—— Storm 编程模型详解

    一.简介 下图为 Strom 的运行流程图,在开发 Storm 流处理程序时,我们需要采用内置或自定义实现 spout(数据源) 和 bolt(处理单元),并通过 TopologyBuilder 将它 ...

随机推荐

  1. Light OJ 1031---Easy Game(区间DP)

    题目链接 http://lightoj.com/volume_showproblem.php?problem=1031 Description You are playing a two player ...

  2. MAC使用CocoaPods

    前言,還是那句話,按照濤叔下面畫黃色的步驟順序執行就好了 使用CocoaPods兩種方式:使用之前安裝的插件&命令行. 一.利用插件 1.創建項目后添加CocoaPods 2.在文本框中輸入如 ...

  3. Fiddler (二) Script 用法

      通过前一篇博客 [Fiddler教程], 我们了解了Fiddler的基本用法,  现在我们来看看Fiddler的高级用法. Fiddler Script.   Fiddler中的script 可以 ...

  4. rabbitmq connection/channel/consumer/queue的数量关系详细分析

    最近,MQ经常有丢包的现象,看各connection/channel/consumer/queue的组成情况,发现差别比较大. channel与消费者: [root@iZ23nn1p4mjZ bin] ...

  5. 在Hyper-V上安装配置Windows负载均衡NLB

    搭建过程 Hyper-V 是自Windows Server2008 以来提供的虚拟机管理软件,它操作简便,功能也不错,可以方便的在它里面安装各种操作系统,如图所示: 现在,想利用这几台虚拟服务器搭建一 ...

  6. bootbox.js

    bootbox:一个弹出框插件,官网看一下例子就好了:http://bootboxjs.com/examples.html 目前来说应该只要调用bootbox.js就可以了,没有css的问题 1.有最 ...

  7. 分享50款 Android 移动应用程序图标【上篇】

    在这个移动程序流行的时代,持续增长的应用程序经济充满了商业机遇.任何对应用程序设计感兴趣的人,将会喜欢上这里的50个独特的 Android 应用程序图标.这些例子中的图标能够让应用程序的设计更具吸引力 ...

  8. 【前端盲点】DOM事件流论证CSS盒模型是否具有厚度

    前言 很久没有扯淡了,我们今天来扯淡吧. 我今天思考了一个问题,我们页面的dom树到底是如何渲染的,而CSS盒模型与javascript是否有联系,于是便想到一个问题: CSS的盒模型具有厚度么??? ...

  9. 使用gulp来构建一个前端项目

    什么是gulp? gulp是一个前端项目构建工具,是自动化项目的构建利器,它不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成.你可以使用gulp及其插件对你的项目代码 ...

  10. mongodb 查询的用法

    想要在C#中使用MongoDB,首先得要有个MongoDB支持的C#版的驱动.C#版的驱动貌似有很多种,如官方提供的samus. 实现思路大都类似.这里我们用官方提供的mongo-csharp-dri ...