Class FluxShellBolt

java.lang.Object
org.apache.storm.task.ShellBolt
org.apache.storm.flux.wrappers.bolts.FluxShellBolt
All Implemented Interfaces:
Serializable, IBolt, IComponent, IRichBolt

public class FluxShellBolt extends ShellBolt implements IRichBolt
A generic `ShellBolt` implementation that allows you specify output fields and even streams without having to subclass `ShellBolt` to do so.
See Also:
  • Constructor Details

    • FluxShellBolt

      public FluxShellBolt(String[] command)
      Create a ShellBolt with command line arguments.
      Parameters:
      command - Command line arguments for the bolt
    • FluxShellBolt

      public FluxShellBolt(String[] command, String[] outputFields)
      Create a ShellBolt with command line arguments and output fields Keep this constructor for backward compatibility.
      Parameters:
      command - Command line arguments for the bolt
      outputFields - Names of fields the bolt will emit (if any).
  • Method Details

    • addComponentConfig

      public void addComponentConfig(String key, Object value)
      Add configuration for this bolt. This method is called from YAML file:

      ``` className: "org.apache.storm.flux.wrappers.bolts.FluxShellBolt" constructorArgs: # command line - ["python3", "splitsentence.py"] # output fields - ["word"] configMethods: - name: "addComponentConfig" args: ["publisher.data_paths", "actions"] ```

      Parameters:
      key - config key
      value - config value
    • addComponentConfig

      public void addComponentConfig(String key, List<Object> values)
      Add configuration for this bolt. This method is called from YAML file:

      ``` className: "org.apache.storm.flux.wrappers.bolts.FluxShellBolt" constructorArgs: # command line - ["python3", "splitsentence.py"] # output fields - ["word"] configMethods: - name: "addComponentConfig" args: - "publisher.data_paths" - ["actions"] ```

      Parameters:
      key - config key
      values - config values
    • setDefaultStream

      public void setDefaultStream(String[] outputFields)
      Set default stream outputFields, this method is called from YAML file:

      ``` bolts: - className: org.apache.storm.flux.wrappers.bolts.FluxShellBolt id: my_bolt constructorArgs: - [python3, my_bolt.py] configMethods: - name: setDefaultStream args: - [word, count] ```

      Parameters:
      outputFields - Names of fields the bolt will emit (if any) in default stream.
    • setNamedStream

      public void setNamedStream(String name, String[] outputFields)
      Set custom *named* stream outputFields, this method is called from YAML file:

      ``` bolts: - className: org.apache.storm.flux.wrappers.bolts.FluxShellBolt id: my_bolt constructorArgs: - [python3, my_bolt.py] configMethods: - name: setNamedStream args: - first - [word, count] ```

      Parameters:
      name - Name of stream the bolt will emit into.
      outputFields - Names of fields the bolt will emit in custom *named* stream.
    • declareOutputFields

      public void declareOutputFields(OutputFieldsDeclarer declarer)
      Description copied from interface: IComponent
      Declare the output schema for all the streams of this topology.
      Specified by:
      declareOutputFields in interface IComponent
      Parameters:
      declarer - this is used to declare output stream ids, output fields, and whether or not each output stream is a direct stream
    • getComponentConfiguration

      public Map<String,Object> getComponentConfiguration()
      Description copied from interface: IComponent
      Declare configuration specific to this component. Only a subset of the "topology.*" configs can be overridden. The component configuration can be further overridden when constructing the topology using TopologyBuilder
      Specified by:
      getComponentConfiguration in interface IComponent