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

时间:2018-01-20 09:37:19

标签: c# apache-storm azure-data-lake stream-analytics

我需要对从物联网传感器(CEP,离群值检测等)获取的数据进行一些数据分析。

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

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

我发现Apache Storm是一个很好的解决方案,基于我读到的内容,我们可以通过安装azure数据湖工具从visual studio开发c#中的spouts,bolt。

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

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

1 个答案:

答案 0 :(得分:0)

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

这里有一个如何在这里实现multilang拓扑的例子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 multilang实现https://github.com/apache/storm/blob/master/storm-multilang/python/src/main/resources/resources/storm.py

可悲的是Storm只附带了Python,Javascript和Ruby的包装器,但你可以编写自己的(如果结果很好的话,可以将它贡献给项目)?

如果你不想实现自己的包装器,快速谷歌出现了https://github.com/ziyunhx/storm-net-adapter,我还没试过,但它可能值得一试?

您可能还会嘲笑Microsoft让他们开源数据湖工具,或者至少提供在非Azure群集上运行的支持。他们的工具很可能包含Storm的多重包装。