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