spout代码:
public class MyLocalFileSpout extends BaseRichSpout {
public static final String FILE_PATH = "/root/1.log";
private SpoutOutputCollector collector;
private BufferedReader bufferedReader;
public void open(Map conf, TopologyContext context, SpoutOutputCollector collector) {
this.collector = collector;
try {
this.bufferedReader = new BufferedReader(new FileReader(new File(FILE_PATH)));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public void nextTuple() {
try {
String line = bufferedReader.readLine();
if (StringUtils.isNotBlank(line)) {
List<Object> arrayList = new ArrayList<Object>();
arrayList.add(line);
collector.emit(arrayList);
}
} catch (IOException e) {
e.printStackTrace();
}
}
public void declareOutputFields(OutputFieldsDeclarer declarer) {
declarer.declare(new Fields("juzi"));
}
}
bolt1 句子分割成单词代码:
/**
* Map --->word,1
*/
public class MySplitBolt extends BaseBasicBolt {
public void execute(Tuple input, BasicOutputCollector collector) {
String juzi = (String) input.getValueByField("juzi");
String[] strings = juzi.split(" ");
for (String word : strings) {
collector.emit(new Values(word, 1));
}
}
public