You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@storm.apache.org by Kang Xiao <kx...@gmail.com> on 2014/03/11 16:37:06 UTC

回复: Unable to connect to storm drpc server

Hi Rohan  

As the error message indicated, you should use thrift TFramedTransport instead of TBufferedTransport in the client script since storm drpc server use TFramedTransport.  

--  
Best Regards!

肖康(Kang Xiao,<kxiao.tiger@gmail.com (mailto:kxiao.tiger@gmail.com)>)
Distributed Software Engineer


在 2014年3月11日 星期二,16:54,Rohan Kapadia 写道:

>  
> I have a storm-cluster, with everything running on the same instance though.  
>  
>  
> I am trying to make a call from Node to the drpc server but get a ECONNRESET error in the js script.  
>  
>  
> On the server I get the message o.a.t.s.TNonblockingServer [ERROR] Read an invalid frame size of -2147418111. Are you using TFramedTransport on the client side?
>  
>  
> The complete error message on the client side
>  
> making call connection error read ECONNRESET Error: read ECONNRESET at errnoException (net.js:904:11) at TCP.onread (net.js:558:19)  
>  
> Client script
>  
> var thrift = require('thrift'); var stormdrpc = require('./gen-nodejs/stormdrpc'); var ttypes = require('./gen-nodejs/test_types'); var assert = require('assert'); transport = thrift.TBufferedTransport(); protocol = thrift.TBinaryProtocol(); var connection = thrift.createConnection("10.0.1.11", 3772, { transport : transport, protocol : protocol }); connection.on('error', function(err) { console.log('connection error'); console.log(err.message); console.log(err.stack); }); var client = thrift.createClient(stormdrpc, connection); console.log("making call"); client.testdrpc('testing', function(err, response) { console.log("callback fired"); console.log(err); console.log(response); console.log("callback completed"); });  
>  
> storm.yaml
>  
> ### base storm.local.dir: "/opt/storm" storm.local.mode.zmq: false storm.cluster.mode: "distributed" ### zookeeper.* storm.zookeeper.servers: - "10.0.2.15" storm.zookeeper.port: 2181 storm.zookeeper.root: "/storm" storm.zookeeper.session.timeout: 20000 storm.zookeeper.retry.times: 5 storm.zookeeper.retry.interval: 1000 ### supervisor.* configs are for node supervisors supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703 supervisor.childopts: "-Xmx1024m" supervisor.worker.start.timeout.secs: 120 supervisor.worker.timeout.secs: 30 supervisor.monitor.frequency.secs: 3 supervisor.heartbeat.frequency.secs: 5 supervisor.enable: true ### worker.* configs are for task workers worker.childopts: "-Xmx1280m -XX:+UseConcMarkSweepGC -Dcom.sun.management.jmxremote" worker.heartbeat.frequency.secs: 1 task.heartbeat.frequency.secs: 3 task.refresh.poll.secs: 10 zmq.threads: 1 zmq.linger.millis: 5000 ### nimbus.* configs are for the master nimbus.host: "10.0.2.15" nimbus.thrift.port: 6627 nimbus.childopts: "-Xmx1024m" nimbus.task.timeout.secs: 30 nimbus.supervisor.timeout.secs: 60 nimbus.monitor.freq.secs: 10 nimbus.cleanup.inbox.freq.secs: 600 nimbus.inbox.jar.expiration.secs: 3600 nimbus.task.launch.secs: 120 nimbus.reassign: true nimbus.file.copy.expiration.secs: 600 ### ui.* configs are for the master ui.port: 8080 ui.childopts: "-Xmx768m" ### drpc.* configs drpc.port: 3772 drpc.worker.threads: 64 drpc.queue.size: 128 drpc.invocations.port: 3773 drpc.request.timeout.secs: 600 drpc.childopts: "-Xmx768m" drpc.servers: - "10.0.2.15" ### transactional.* configs transactional.zookeeper.servers: - "10.0.2.15" transactional.zookeeper.root: "/storm-transactional" transactional.zookeeper.port: 2181 ### topology.* configs are for specific executing storms topology.debug: true topology.optimize: true topology.workers: 1 topology.acker.executors: 1 topology.acker.tasks: null topology.tasks: null topology.message.timeout.secs: 30 topology.skip.missing.kryo.registrations: false topology.max.task.parallelism: null topology.max.spout.pending: null topology.state.synchronization.timeout.secs: 60 topology.stats.sample.rate: 0.05 topology.fall.back.on.java.serialization: true topology.worker.childopts: null  
>  
>  
>  
>  
>  
>  
> --  
> Rohan Kapadia
>  


Re: 回复: Unable to connect to storm drpc server

Posted by Rohan Kapadia <ro...@gmail.com>.
Hi Kang,

I tried using |TframedTransport| but that also resulted in the same error?

I’m not sure what transport storm uses exactly, but from the error
message what you suggested should make sense.

Also, I am using the |TBinaryProtocol|. Is that correct, or should I use
another protocol?

I have also tried making a connection without giving a transport or
protocol, hoping that the default will work. No luck there also.

Thanks for helping out.

Regards
Rohan



On Tuesday 11 March 2014 09:07:06 PM IST, Kang Xiao wrote:
>
> Hi Rohan
>
> As the error message indicated, you should use thrift TFramedTransport
> instead of TBufferedTransport in the client script since storm drpc
> server use TFramedTransport.
>
> -- 
> Best Regards!
>
> 肖康(Kang Xiao,<kxiao.tiger@gmail.com <ma...@gmail.com>>)
> Distributed Software Engineer
>
> 在 2014年3月11日 星期二,16:54,Rohan Kapadia 写道:
>
>>
>> I have a storm-cluster, with everything running on the same instance
>> though.
>>
>> I am trying to make a call from Node to the drpc server but get a
>> |ECONNRESET| error in the js script.
>>
>> On the server I get the message |o.a.t.s.TNonblockingServer [ERROR]
>> Read an invalid frame size of -2147418111. Are you using
>> TFramedTransport on the client side?|
>>
>> *The complete error message on the client side*
>>
>> |making call
>> connection error
>> read ECONNRESET
>> Error: read ECONNRESET
>> at errnoException (net.js:904:11)
>> at TCP.onread (net.js:558:19)
>> |
>>
>> *Client script*
>>
>> |var thrift = require('thrift');
>> var stormdrpc = require('./gen-nodejs/stormdrpc');
>> var ttypes = require('./gen-nodejs/test_types');
>> var assert = require('assert');
>>
>> transport = thrift.TBufferedTransport();
>> protocol = thrift.TBinaryProtocol();
>>
>> var connection = thrift.createConnection("10.0.1.11", 3772, {
>> transport : transport,
>> protocol : protocol
>> });
>>
>> connection.on('error', function(err) {
>> console.log('connection error');
>> console.log(err.message);
>> console.log(err.stack);
>> });
>>
>> var client = thrift.createClient(stormdrpc, connection);
>>
>> console.log("making call");
>> client.testdrpc('testing', function(err, response) {
>> console.log("callback fired");
>> console.log(err);
>> console.log(response);
>> console.log("callback completed");
>> });
>> |
>>
>> *storm.yaml*
>>
>> |### base
>> storm.local.dir: "/opt/storm"
>> storm.local.mode.zmq: false
>> storm.cluster.mode: "distributed"
>>
>> ### zookeeper.*
>> storm.zookeeper.servers:
>> - "10.0.2.15"
>> storm.zookeeper.port: 2181
>> storm.zookeeper.root: "/storm"
>> storm.zookeeper.session.timeout: 20000
>> storm.zookeeper.retry.times: 5
>> storm.zookeeper.retry.interval: 1000
>>
>> ### supervisor.* configs are for node supervisors
>> supervisor.slots.ports:
>> - 6700
>> - 6701
>> - 6702
>> - 6703
>> supervisor.childopts: "-Xmx1024m"
>> supervisor.worker.start.timeout.secs: 120
>> supervisor.worker.timeout.secs: 30
>> supervisor.monitor.frequency.secs: 3
>> supervisor.heartbeat.frequency.secs: 5
>> supervisor.enable: true
>>
>> ### worker.* configs are for task workers
>> worker.childopts: "-Xmx1280m -XX:+UseConcMarkSweepGC
>> -Dcom.sun.management.jmxremote"
>> worker.heartbeat.frequency.secs: 1
>> task.heartbeat.frequency.secs: 3
>> task.refresh.poll.secs: 10
>> zmq.threads: 1
>> zmq.linger.millis: 5000
>>
>> ### nimbus.* configs are for the master
>> nimbus.host: "10.0.2.15"
>> nimbus.thrift.port: 6627
>> nimbus.childopts: "-Xmx1024m"
>> nimbus.task.timeout.secs: 30
>> nimbus.supervisor.timeout.secs: 60
>> nimbus.monitor.freq.secs: 10
>> nimbus.cleanup.inbox.freq.secs: 600
>> nimbus.inbox.jar.expiration.secs: 3600
>> nimbus.task.launch.secs: 120
>> nimbus.reassign: true
>> nimbus.file.copy.expiration.secs: 600
>>
>> ### ui.* configs are for the master
>> ui.port: 8080
>> ui.childopts: "-Xmx768m"
>>
>> ### drpc.* configs
>> drpc.port: 3772
>> drpc.worker.threads: 64
>> drpc.queue.size: 128
>> drpc.invocations.port: 3773
>> drpc.request.timeout.secs: 600
>> drpc.childopts: "-Xmx768m"
>> drpc.servers:
>> - "10.0.2.15"
>>
>> ### transactional.* configs
>> transactional.zookeeper.servers:
>> - "10.0.2.15"
>> transactional.zookeeper.root: "/storm-transactional"
>> transactional.zookeeper.port: 2181
>>
>> ### topology.* configs are for specific executing storms
>> topology.debug: true
>> topology.optimize: true
>> topology.workers: 1
>> topology.acker.executors: 1
>> topology.acker.tasks: null
>> topology.tasks: null
>> topology.message.timeout.secs: 30
>> topology.skip.missing.kryo.registrations: false
>> topology.max.task.parallelism: null
>> topology.max.spout.pending: null
>> topology.state.synchronization.timeout.secs: 60
>> topology.stats.sample.rate: 0.05
>> topology.fall.back.on.java.serialization: true
>> topology.worker.childopts: null
>> |
>>
>>
>>
>> -- 
>> Rohan Kapadia
>>
>

Re: 回复: Unable to connect to storm drpc server

Posted by Rohan Kapadia <ro...@gmail.com>.
Hi Kang,

I tried using |TframedTransport| but that also resulted in the same error?

I’m not sure what transport storm uses exactly, but from the error
message what you suggested should make sense.

Also, I am using the |TBinaryProtocol|. Is that correct, or should I use
another protocol?

I have also tried making a connection without giving a transport or
protocol, hoping that the default will work. No luck there also.

Thanks for helping out.

Regards
Rohan



On Tuesday 11 March 2014 09:07:06 PM IST, Kang Xiao wrote:
>
> Hi Rohan
>
> As the error message indicated, you should use thrift TFramedTransport
> instead of TBufferedTransport in the client script since storm drpc
> server use TFramedTransport.
>
> -- 
> Best Regards!
>
> 肖康(Kang Xiao,<kxiao.tiger@gmail.com <ma...@gmail.com>>)
> Distributed Software Engineer
>
> 在 2014年3月11日 星期二,16:54,Rohan Kapadia 写道:
>
>>
>> I have a storm-cluster, with everything running on the same instance
>> though.
>>
>> I am trying to make a call from Node to the drpc server but get a
>> |ECONNRESET| error in the js script.
>>
>> On the server I get the message |o.a.t.s.TNonblockingServer [ERROR]
>> Read an invalid frame size of -2147418111. Are you using
>> TFramedTransport on the client side?|
>>
>> *The complete error message on the client side*
>>
>> |making call
>> connection error
>> read ECONNRESET
>> Error: read ECONNRESET
>> at errnoException (net.js:904:11)
>> at TCP.onread (net.js:558:19)
>> |
>>
>> *Client script*
>>
>> |var thrift = require('thrift');
>> var stormdrpc = require('./gen-nodejs/stormdrpc');
>> var ttypes = require('./gen-nodejs/test_types');
>> var assert = require('assert');
>>
>> transport = thrift.TBufferedTransport();
>> protocol = thrift.TBinaryProtocol();
>>
>> var connection = thrift.createConnection("10.0.1.11", 3772, {
>> transport : transport,
>> protocol : protocol
>> });
>>
>> connection.on('error', function(err) {
>> console.log('connection error');
>> console.log(err.message);
>> console.log(err.stack);
>> });
>>
>> var client = thrift.createClient(stormdrpc, connection);
>>
>> console.log("making call");
>> client.testdrpc('testing', function(err, response) {
>> console.log("callback fired");
>> console.log(err);
>> console.log(response);
>> console.log("callback completed");
>> });
>> |
>>
>> *storm.yaml*
>>
>> |### base
>> storm.local.dir: "/opt/storm"
>> storm.local.mode.zmq: false
>> storm.cluster.mode: "distributed"
>>
>> ### zookeeper.*
>> storm.zookeeper.servers:
>> - "10.0.2.15"
>> storm.zookeeper.port: 2181
>> storm.zookeeper.root: "/storm"
>> storm.zookeeper.session.timeout: 20000
>> storm.zookeeper.retry.times: 5
>> storm.zookeeper.retry.interval: 1000
>>
>> ### supervisor.* configs are for node supervisors
>> supervisor.slots.ports:
>> - 6700
>> - 6701
>> - 6702
>> - 6703
>> supervisor.childopts: "-Xmx1024m"
>> supervisor.worker.start.timeout.secs: 120
>> supervisor.worker.timeout.secs: 30
>> supervisor.monitor.frequency.secs: 3
>> supervisor.heartbeat.frequency.secs: 5
>> supervisor.enable: true
>>
>> ### worker.* configs are for task workers
>> worker.childopts: "-Xmx1280m -XX:+UseConcMarkSweepGC
>> -Dcom.sun.management.jmxremote"
>> worker.heartbeat.frequency.secs: 1
>> task.heartbeat.frequency.secs: 3
>> task.refresh.poll.secs: 10
>> zmq.threads: 1
>> zmq.linger.millis: 5000
>>
>> ### nimbus.* configs are for the master
>> nimbus.host: "10.0.2.15"
>> nimbus.thrift.port: 6627
>> nimbus.childopts: "-Xmx1024m"
>> nimbus.task.timeout.secs: 30
>> nimbus.supervisor.timeout.secs: 60
>> nimbus.monitor.freq.secs: 10
>> nimbus.cleanup.inbox.freq.secs: 600
>> nimbus.inbox.jar.expiration.secs: 3600
>> nimbus.task.launch.secs: 120
>> nimbus.reassign: true
>> nimbus.file.copy.expiration.secs: 600
>>
>> ### ui.* configs are for the master
>> ui.port: 8080
>> ui.childopts: "-Xmx768m"
>>
>> ### drpc.* configs
>> drpc.port: 3772
>> drpc.worker.threads: 64
>> drpc.queue.size: 128
>> drpc.invocations.port: 3773
>> drpc.request.timeout.secs: 600
>> drpc.childopts: "-Xmx768m"
>> drpc.servers:
>> - "10.0.2.15"
>>
>> ### transactional.* configs
>> transactional.zookeeper.servers:
>> - "10.0.2.15"
>> transactional.zookeeper.root: "/storm-transactional"
>> transactional.zookeeper.port: 2181
>>
>> ### topology.* configs are for specific executing storms
>> topology.debug: true
>> topology.optimize: true
>> topology.workers: 1
>> topology.acker.executors: 1
>> topology.acker.tasks: null
>> topology.tasks: null
>> topology.message.timeout.secs: 30
>> topology.skip.missing.kryo.registrations: false
>> topology.max.task.parallelism: null
>> topology.max.spout.pending: null
>> topology.state.synchronization.timeout.secs: 60
>> topology.stats.sample.rate: 0.05
>> topology.fall.back.on.java.serialization: true
>> topology.worker.childopts: null
>> |
>>
>>
>>
>> -- 
>> Rohan Kapadia
>>
>