将 C# Storm 拓扑部署到本地/本地 Storm 集群

Posted

技术标签:

【中文标题】将 C# Storm 拓扑部署到本地/本地 Storm 集群【英文标题】:Deploy C# Storm topologies to a local/on premise Storm cluster 【发布时间】:2018-01-20 09:37:18 【问题描述】:

我需要对从 IOT 传感器(CEP、异常值检测等)获取的数据进行一些数据分析

根据我们的限制,我在互联网上搜索了我可以使用的工具:

我团队中的所有开发人员都是 C# 开发人员 解决方案必须在本地部署

根据我阅读的内容,我发现 Apache Storm 是一个很好的解决方案,我们可以通过安装 azure 数据湖工具,在 Visual Studio 中使用 c# 开发 spout、bolts。

我安装了所有东西并开始开发一个简单的拓扑。问题是似乎只能将拓扑部署到 Azure HD Insights

我的问题:是否可以将 c# 拓扑部署到不在 Azure 中的风暴集群?我想提交以将我的拓扑提交到 Storm docker 映像。

【问题讨论】:

【参考方案1】:

这绝对是可能的。我一直没能找到 Azure 数据湖工具的源代码(可能它不是开源的?),但是关于如何用其他语言实现 Storm 拓扑的参考在这里http://storm.apache.org/releases/2.0.0-SNAPSHOT/Multilang-protocol.html

这里有一个如何实现多语言拓扑的示例https://github.com/apache/storm/blob/master/examples/storm-starter/src/jvm/org/apache/storm/starter/WordCountTopology.java,它在 Python 中实现了它的一个螺栓。您可能会注意到该类的顶部有一个 ShellBolt,它调用了一个 python 文件。 python 文件包含bolt 实现https://github.com/apache/storm/blob/master/examples/storm-starter/multilang/resources/splitsentence.py,这里使用了Python 的Storm 多语言实现https://github.com/apache/storm/blob/master/storm-multilang/python/src/main/resources/resources/storm.py。

可悲的是,Storm 仅附带 Python、javascript 和 Ruby 的包装器,但您可以自己编写(如果结果良好,可以将其贡献回项目)?

如果您不想实现自己的包装器,可以快速 google 一下 https://github.com/ziyunhx/storm-net-adapter,我还没有尝试过,但可能值得一试?

您还可以要求微软开源数据湖工具,或者至少为在非 Azure 集群上运行提供支持。他们的工具很可能包含 Storm 的多语言包装器。

【讨论】:

以上是关于将 C# Storm 拓扑部署到本地/本地 Storm 集群的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Eclipse 中调试 Apache Storm?

F-W高级配置(OSPF+STO+VRRP)

storm如何部署拓扑

Apache Storm Trident - 动态创建拓扑

56.storm 之 hello world (集群模式)

部署后的 Apache Storm JAR 访问