您好,登录后才能下订单哦!
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号
为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);
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。