HDFS Spout Example
The following example creates an HDFS spout that reads text files from HDFS path hdfs://localhost:54310/source.
// Instantiate spout to read text files
HdfsSpout textReaderSpout = newHdfsSpout().setReaderType("text")
.withOutputFields(TextFileReader.defaultFields)
.setHdfsUri("hdfs://localhost:54310") // reqd
.setSourceDir("/data/in") // reqd
.setArchiveDir("/data/done") // reqd
.setBadFilesDir("/data/badfiles"); // required
// If using Kerberos
HashMap hdfsSettings = new HashMap();
hdfsSettings.put("hdfs.keytab.file", "/path/to/keytab");
hdfsSettings.put("hdfs.kerberos.principal","user@EXAMPLE.com");
textReaderSpout.setHdfsClientSettings(hdfsSettings);
// Create topology
TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("hdfsspout", textReaderSpout, SPOUT_NUM);
// Set up bolts and wire up topology
...
// Submit topology with config
Config conf = new Config();
StormSubmitter.submitTopologyWithProgressBar("topologyName", conf, builder.createTopology());
A sample topology HdfsSpoutTopology is provided in the
storm-starter module.

