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 voidaddComponentConfig(String key, Object value)Add configuration for this bolt.voidaddComponentConfig(String key, List<Object> values)Add configuration for this bolt.voiddeclareOutputFields(OutputFieldsDeclarer declarer)Declare the output schema for all the streams of this topology.Map<String,Object>getComponentConfiguration()Declare configuration specific to this component.voidsetDefaultStream(String[] outputFields)Set default stream outputFields, this method is called from YAML file:voidsetNamedStream(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:IComponentDeclare the output schema for all the streams of this topology.- Specified by:
declareOutputFieldsin 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:IComponentDeclare 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:
getComponentConfigurationin interfaceIComponent
-
-