Twitter Storm: DRPC学习

查看数: 13512 | 评论数: 3 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2014-6-14 00:01

正文摘要:

问题导读: 1.Storm为什么引入DRP? 2.是否能根据实例新建DRPC实例? Storm里面引入DRPC主要是利用storm的实时计算能力来并行化CPU intensive的计算。DRPC的storm topology以函数的参数流作为输入, ...

回复

邓立辉 发表于 2015-10-19 21:06:34
版主,我在集群放部署topology。每次调用一次topology跑到一半就报错。求指导 work里报的日志
2015-10-19T20:55:54.455+0800 o.a.z.ClientCnxn [INFO] Unable to read additional data from server sessionid 0x0, likely server has closed socket, closing socket connection and attempting reconnect
2015-10-19T20:55:54.556+0800 o.a.z.ClientCnxn [INFO] Opening socket connection to server 2.2.2.12/2.2.2.12:2181. Will not attempt to authenticate using SASL (unknown error)
2015-10-19T20:55:54.556+0800 o.a.z.ClientCnxn [INFO] Socket connection established to 2.2.2.12/2.2.2.12:2181, initiating session
2015-10-19T20:55:54.557+0800 o.a.z.ClientCnxn [WARN] Session 0x0 for server 2.2.2.12/2.2.2.12:2181, unexpected error, closing socket connection and attempting reconnect
java.io.IOException: Connection reset by peer
        at sun.nio.ch.FileDispatcherImpl.read0(Native Method) ~[na:1.8.0_60]
        at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) ~[na:1.8.0_60]
        at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) ~[na:1.8.0_60]
        at sun.nio.ch.IOUtil.read(IOUtil.java:192) ~[na:1.8.0_60]
        at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) ~[na:1.8.0_60]
        at org.apache.zookeeper.ClientCnxnSocketNIO.doIO(ClientCnxnSocketNIO.java:68) ~[stormjar.jar:na]
        at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:366) ~[stormjar.jar:na]
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081) ~[stormjar.jar:na]
2015-10-19T20:55:54.560+0800 o.a.z.ClientCnxn [INFO] Opening socket connection to server 2.2.2.12/2.2.2.12:2181. Will not attempt to authenticate using SASL (unknown error)
2015-10-19T20:55:54.560+0800 o.a.z.ClientCnxn [INFO] Socket connection established to 2.2.2.12/2.2.2.12:2181, initiating session
desehawk 发表于 2014-11-27 22:35:38
Joker 发表于 2014-11-27 21:39
版主你好,你看下我这样理解DRPC程序对吗
1在创建new LinearDRPCTopologyBuilder("exclamation")对象,不 ...
declareOutputFields 方法,告诉Storm 集群Spout 发送了哪些字段

public void declareOutputFields(OutputFieldsDeclarer declarer) {
                declarer.declare(new Fields("id", "result"));
        }


exclamation 这只是个参数,并非函数

第三个确实是返回,后面多了叹号(!)

来源http://www.aboutyun.com/thread-10316-1-1.html

楼主不要拘泥于语句
这本书你可以看看
相信对有帮助:
链接:http://pan.baidu.com/s/1hq6Aci4 密码:y21h

Joker 发表于 2014-11-27 21:39:37
版主你好,你看下我这样理解DRPC程序对吗
1在创建new LinearDRPCTopologyBuilder("exclamation")对象,不用去实现exclamation方法,它只是作为一个DRPC方法名而已,但是我看别人要实现这个DRPC函数,也就是参数名字的函数


2.声明的第一个bolt会接收一个两维tuple指的是
  1. drpc.execute("exclamation", "hello")
复制代码

这段代码

还是
  1. public void declareOutputFields(OutputFieldsDeclarer declarer) {
  2.                 declarer.declare(new Fields("id", "result"));
  3.         }
复制代码
这段代码

3.返回最后的结果通过这段代码?
  1. collector.emit(new Values(tuple.getValue(0), input + "!"));
复制代码


假设我有很多的bolt,那么我在topology中如下设定中间的bolt
  1. builder.addBolt(new myBolt(), 2)
  2.         .fieldsGrouping(new Fields("id")); //这个id和bolt定义的id一致
复制代码

到最后一个bolt时候才使用你这个例子中用的bolt形式吗?传递方法名和参数,方法名必须和
new LinearDRPCTopologyBuilder("exclamation")这个参数名字一致

希望版主能回复我

关闭

推荐上一条 /2 下一条