You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@storm.apache.org by Mohit Srivastava <sr...@gmail.com> on 2014/03/10 06:51:28 UTC
Bolt in C++
Hi,
I like to know that is there any way , I can write the C++ Bolt for storm.
Thanks
--
Mohit
Re: Bolt in C++
Posted by Mohit Srivastava <sr...@gmail.com>.
I already seen into it.
There is something I have to put inside SplitSentenceTest.java
public SplitSentence() {
super("split_sentence");
}
"split_sentence" is name of binary of C++ files ?
On Wed, Mar 12, 2014 at 1:19 AM, Richard McCreadie <
richard.mccreadie@glasgow.ac.uk> wrote:
> We made a wrapper for this, see - https://github.com/filox/StormCpp
>
> Richard McCreadie
>
>
> On 10/03/14 10:32, 鞠大升 wrote:
>
>> I just have some python examples:
>>
>> public class ExamplePythonBolt extends ShellBolt implements IRichBolt {
>>
>> private static final long serialVersionUID = 1999209252187463355L;
>>
>>
>> private TopologyConfig topologyConfig;
>>
>> public ExamplePythonBolt(TopologyConfig config) {
>>
>> super("python", "ExampleBolt.py", config.topologyName);
>>
>> topologyConfig = config;
>>
>> }
>>
>> public void prepare(Map stormConf, TopologyContext context,
>> OutputCollector collector) {
>>
>> super.prepare(stormConf, context, collector);
>>
>> }
>>
>>
>> public void declareOutputFields(OutputFieldsDeclarer declarer) {
>>
>> declarer.declare(new Fields("LogRecord"));
>>
>> }
>>
>>
>> public Map<String, Object> getComponentConfiguration() {
>>
>> return null;
>>
>> }
>>
>> }
>>
>>
>> ================================
>>
>> #!/usr/bin/env python
>>
>> #coding=utf-8
>>
>>
>> import storm
>>
>>
>> import traceback
>>
>> import time
>>
>> import sys
>>
>> import os
>>
>> import types
>>
>>
>> from common import *
>>
>> import logconf
>>
>> from MTLogger import MTLOGGER,MTFormatter
>>
>>
>> try:
>>
>> import simplejson as json
>>
>> except ImportError:
>>
>> import json
>>
>>
>>
>> json_encode = lambda x: json.dumps(x)
>>
>> json_decode = lambda x: json.loads(x)
>>
>>
>> class ExampleBolt(storm.BasicBolt):
>>
>> def __init__(self, boltParams):
>>
>> #from here, you can get params from java
>>
>> pass
>>
>>
>>
>> def initialize(self, stormconf, context):
>>
>> pass
>>
>>
>>
>> def process(self, tup):
>>
>> logjson = tup.values[0];
>>
>>
>> try:
>>
>> #logRecord = json_decode(logjson)
>>
>>
>>
>> MTLOGGER.info("TestAction", "handle the json %s" % (logjson))
>>
>> storm.emit([logjson])
>>
>>
>>
>> storm.rpcMetrics("PythonBoltCount", 1)
>>
>> storm.rpcMetrics("PythonBoltMean", {"abc":1000})
>>
>> storm.rpcMetrics("PythonBoltMean", {"def":(long)(10000.1)})
>>
>> except Exception,tx:
>>
>> MTLOGGER.error("TestAction","msg=log error, %s" %
>> traceback.format_exc().replace("\n"," ").replace("=","_"))
>>
>>
>> if __name__ == '__main__':
>>
>> def checkargv():
>>
>> n=0
>>
>> for i in sys.argv:
>>
>> n = n+1
>>
>> if n != 2:
>>
>> print "the params is not right"
>>
>> sys.exit(1)
>>
>> return sys.argv[1]
>>
>>
>> #get params from java
>>
>> param = checkargv()
>>
>> bolt = ExampleBolt(param)
>>
>> bolt.run()
>>
>>
>> On Mon, Mar 10, 2014 at 5:04 PM, Mohit Srivastava <
>> srivastavamohit91@gmail.com> wrote:
>>
>> Yeah looking into it.
>>> Is there any examples related to that ?
>>>
>>> --
>>> Mohit
>>>
>>>
>>> On Mon, Mar 10, 2014 at 1:36 PM, 鞠大升 <da...@gmail.com> wrote:
>>>
>>> you can use multilang with c++ bolt or spout.
>>>>
>>>>
>>>> On Mon, Mar 10, 2014 at 1:51 PM, Mohit Srivastava <
>>>> srivastavamohit91@gmail.com> wrote:
>>>>
>>>> Hi,
>>>>>
>>>>> I like to know that is there any way , I can write the C++ Bolt for
>>>>>
>>>> storm.
>>>>
>>>>> Thanks
>>>>> --
>>>>> Mohit
>>>>>
>>>>>
>>>>
>>>> --
>>>> dashengju
>>>> +86 13810875910
>>>> dashengju@gmail.com
>>>>
>>>>
>>
>>
>
Re: Bolt in C++
Posted by Richard McCreadie <ri...@glasgow.ac.uk>.
We made a wrapper for this, see - https://github.com/filox/StormCpp
Richard McCreadie
On 10/03/14 10:32, 鞠大升 wrote:
> I just have some python examples:
>
> public class ExamplePythonBolt extends ShellBolt implements IRichBolt {
>
> private static final long serialVersionUID = 1999209252187463355L;
>
>
> private TopologyConfig topologyConfig;
>
> public ExamplePythonBolt(TopologyConfig config) {
>
> super("python", "ExampleBolt.py", config.topologyName);
>
> topologyConfig = config;
>
> }
>
> public void prepare(Map stormConf, TopologyContext context,
> OutputCollector collector) {
>
> super.prepare(stormConf, context, collector);
>
> }
>
>
> public void declareOutputFields(OutputFieldsDeclarer declarer) {
>
> declarer.declare(new Fields("LogRecord"));
>
> }
>
>
> public Map<String, Object> getComponentConfiguration() {
>
> return null;
>
> }
>
> }
>
>
> ================================
>
> #!/usr/bin/env python
>
> #coding=utf-8
>
>
> import storm
>
>
> import traceback
>
> import time
>
> import sys
>
> import os
>
> import types
>
>
> from common import *
>
> import logconf
>
> from MTLogger import MTLOGGER,MTFormatter
>
>
> try:
>
> import simplejson as json
>
> except ImportError:
>
> import json
>
>
>
> json_encode = lambda x: json.dumps(x)
>
> json_decode = lambda x: json.loads(x)
>
>
> class ExampleBolt(storm.BasicBolt):
>
> def __init__(self, boltParams):
>
> #from here, you can get params from java
>
> pass
>
>
>
> def initialize(self, stormconf, context):
>
> pass
>
>
>
> def process(self, tup):
>
> logjson = tup.values[0];
>
>
> try:
>
> #logRecord = json_decode(logjson)
>
>
>
> MTLOGGER.info("TestAction", "handle the json %s" % (logjson))
>
> storm.emit([logjson])
>
>
>
> storm.rpcMetrics("PythonBoltCount", 1)
>
> storm.rpcMetrics("PythonBoltMean", {"abc":1000})
>
> storm.rpcMetrics("PythonBoltMean", {"def":(long)(10000.1)})
>
> except Exception,tx:
>
> MTLOGGER.error("TestAction","msg=log error, %s" %
> traceback.format_exc().replace("\n"," ").replace("=","_"))
>
>
> if __name__ == '__main__':
>
> def checkargv():
>
> n=0
>
> for i in sys.argv:
>
> n = n+1
>
> if n != 2:
>
> print "the params is not right"
>
> sys.exit(1)
>
> return sys.argv[1]
>
>
> #get params from java
>
> param = checkargv()
>
> bolt = ExampleBolt(param)
>
> bolt.run()
>
>
> On Mon, Mar 10, 2014 at 5:04 PM, Mohit Srivastava <
> srivastavamohit91@gmail.com> wrote:
>
>> Yeah looking into it.
>> Is there any examples related to that ?
>>
>> --
>> Mohit
>>
>>
>> On Mon, Mar 10, 2014 at 1:36 PM, 鞠大升 <da...@gmail.com> wrote:
>>
>>> you can use multilang with c++ bolt or spout.
>>>
>>>
>>> On Mon, Mar 10, 2014 at 1:51 PM, Mohit Srivastava <
>>> srivastavamohit91@gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> I like to know that is there any way , I can write the C++ Bolt for
>>> storm.
>>>> Thanks
>>>> --
>>>> Mohit
>>>>
>>>
>>>
>>> --
>>> dashengju
>>> +86 13810875910
>>> dashengju@gmail.com
>>>
>
>
Re: Bolt in C++
Posted by 鞠大升 <da...@gmail.com>.
I just have some python examples:
public class ExamplePythonBolt extends ShellBolt implements IRichBolt {
private static final long serialVersionUID = 1999209252187463355L;
private TopologyConfig topologyConfig;
public ExamplePythonBolt(TopologyConfig config) {
super("python", "ExampleBolt.py", config.topologyName);
topologyConfig = config;
}
public void prepare(Map stormConf, TopologyContext context,
OutputCollector collector) {
super.prepare(stormConf, context, collector);
}
public void declareOutputFields(OutputFieldsDeclarer declarer) {
declarer.declare(new Fields("LogRecord"));
}
public Map<String, Object> getComponentConfiguration() {
return null;
}
}
================================
#!/usr/bin/env python
#coding=utf-8
import storm
import traceback
import time
import sys
import os
import types
from common import *
import logconf
from MTLogger import MTLOGGER,MTFormatter
try:
import simplejson as json
except ImportError:
import json
json_encode = lambda x: json.dumps(x)
json_decode = lambda x: json.loads(x)
class ExampleBolt(storm.BasicBolt):
def __init__(self, boltParams):
#from here, you can get params from java
pass
def initialize(self, stormconf, context):
pass
def process(self, tup):
logjson = tup.values[0];
try:
#logRecord = json_decode(logjson)
MTLOGGER.info("TestAction", "handle the json %s" % (logjson))
storm.emit([logjson])
storm.rpcMetrics("PythonBoltCount", 1)
storm.rpcMetrics("PythonBoltMean", {"abc":1000})
storm.rpcMetrics("PythonBoltMean", {"def":(long)(10000.1)})
except Exception,tx:
MTLOGGER.error("TestAction","msg=log error, %s" %
traceback.format_exc().replace("\n"," ").replace("=","_"))
if __name__ == '__main__':
def checkargv():
n=0
for i in sys.argv:
n = n+1
if n != 2:
print "the params is not right"
sys.exit(1)
return sys.argv[1]
#get params from java
param = checkargv()
bolt = ExampleBolt(param)
bolt.run()
On Mon, Mar 10, 2014 at 5:04 PM, Mohit Srivastava <
srivastavamohit91@gmail.com> wrote:
> Yeah looking into it.
> Is there any examples related to that ?
>
> --
> Mohit
>
>
> On Mon, Mar 10, 2014 at 1:36 PM, 鞠大升 <da...@gmail.com> wrote:
>
> > you can use multilang with c++ bolt or spout.
> >
> >
> > On Mon, Mar 10, 2014 at 1:51 PM, Mohit Srivastava <
> > srivastavamohit91@gmail.com> wrote:
> >
> > > Hi,
> > >
> > > I like to know that is there any way , I can write the C++ Bolt for
> > storm.
> > >
> > > Thanks
> > > --
> > > Mohit
> > >
> >
> >
> >
> > --
> > dashengju
> > +86 13810875910
> > dashengju@gmail.com
> >
>
--
dashengju
+86 13810875910
dashengju@gmail.com
Re: Bolt in C++
Posted by Mohit Srivastava <sr...@gmail.com>.
Yeah looking into it.
Is there any examples related to that ?
--
Mohit
On Mon, Mar 10, 2014 at 1:36 PM, 鞠大升 <da...@gmail.com> wrote:
> you can use multilang with c++ bolt or spout.
>
>
> On Mon, Mar 10, 2014 at 1:51 PM, Mohit Srivastava <
> srivastavamohit91@gmail.com> wrote:
>
> > Hi,
> >
> > I like to know that is there any way , I can write the C++ Bolt for
> storm.
> >
> > Thanks
> > --
> > Mohit
> >
>
>
>
> --
> dashengju
> +86 13810875910
> dashengju@gmail.com
>
Re: Bolt in C++
Posted by 鞠大升 <da...@gmail.com>.
you can use multilang with c++ bolt or spout.
On Mon, Mar 10, 2014 at 1:51 PM, Mohit Srivastava <
srivastavamohit91@gmail.com> wrote:
> Hi,
>
> I like to know that is there any way , I can write the C++ Bolt for storm.
>
> Thanks
> --
> Mohit
>
--
dashengju
+86 13810875910
dashengju@gmail.com