扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
Storm使用非JVM的语言
要点:
1、创建topology(官方文档说使用其他语言创建很简单,因为topology本身是一个thrift结构,参考stotm.thrift)
2、用其他语言实现spout和bolt,被叫做 multilang components" 或"shelling"
a:这里有一个指定的协议Multilang protocol
b:thrift结构允许你明确的定义multilang components作为程序和脚本
c:在Java中,你覆盖ShellBolt或ShellSpolt来创建multilang components,注意输出字段的声明发生在thrift结构,所以在Java中创建multilang components如下所示:通过指定它在Java中声明领域,用其他语言处理代码指定shellbolt的结构,multilang使用JSON消息在标准输入/输出与子进程进行通信,storm伴随ruby、python和其他语言实现协议,展示一个python的例子:
python支持emitting, anchoring, acking, and logging
d:storm shell使得对nimbus打jar包和上传更方便
打jar包,上传
调用程序nimbus使用host/port,jar文件使用id号
乐山网站建设公司创新互联,乐山网站设计制作,有大型网站制作公司丰富经验。已为乐山1000多家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的乐山做网站的公司定做!
为Storm定义一个非JVM的语言
因为Storm topology是一个thrift结构,并且nimbus是一个thrift进程,你可创建和提交topology用任何语言,开始学习的地方是storm.thrift。当你为spout和bolt创建thrift结构时,spolt和bolt指定的代码结构是:
union ComponentObject {
1: binary serialized_java;
2: ShellComponent shell;
3: JavaObject java_object;
}
使用非jvm的语言,你可能会使用2或3.ShellCompont让你指定脚本去运行,JavaObject让你指定java的spolt和bolt,storm shell命令帮你提交topology
storm shell resources/ python topology.py arg1 arg2
storm shell 将打jar包,上传jar包给nimbus,命令如下:
python topology.py arg1 arg2 {nimbus-host} {nimbus-port} {uploaded-jar-location}
提交topology到集群上
void submitTopology(1: string name, 2: string uploadedJarLocation, 3: string jsonConf, 4: StormTopology topology) throws (1: AlreadyAliveException e, 2: InvalidTopologyException ite);
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流