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 <
[email protected]> wrote:

Yeah looking into it.
Is there any examples related to that ?

--
Mohit


On Mon, Mar 10, 2014 at 1:36 PM, 鞠大升 <[email protected]> wrote:

you can use multilang with c++ bolt or spout.


On Mon, Mar 10, 2014 at 1:51 PM, Mohit Srivastava <
[email protected]> wrote:

Hi,

I like to know that is there any way , I can write the C++ Bolt for
storm.
Thanks
--
Mohit



--
dashengju
+86 13810875910
[email protected]




Reply via email to