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:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.apache.storm.task.ShellBolt
HEARTBEAT_STREAM_ID, LOG
-
-
Constructor Summary
Constructors Constructor Description FluxShellBolt(String[] command)
Create a ShellBolt with command line arguments.FluxShellBolt(String[] command, String[] outputFields)
Create a ShellBolt with command line arguments and output fields Keep this constructor for backward compatibility.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addComponentConfig(String key, Object value)
Add configuration for this bolt.void
addComponentConfig(String key, List<Object> values)
Add configuration for this bolt.void
declareOutputFields(OutputFieldsDeclarer declarer)
Declare the output schema for all the streams of this topology.Map<String,Object>
getComponentConfiguration()
Declare configuration specific to this component.void
setDefaultStream(String[] outputFields)
Set default stream outputFields, this method is called from YAML file:void
setNamedStream(String name, String[] outputFields)
Set custom *named* stream outputFields, this method is called from YAML file:-
Methods inherited from class org.apache.storm.task.ShellBolt
changeChildCWD, cleanup, execute, prepare, setEnv, shouldChangeChildCWD
-
-
-
-
Constructor Detail
-
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 boltoutputFields
- Names of fields the bolt will emit (if any).
-
-
Method Detail
-
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 keyvalue
- 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 keyvalues
- 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 interfaceIComponent
- 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 usingTopologyBuilder
- Specified by:
getComponentConfiguration
in interfaceIComponent
-
-