Flink流处理Word Count示例代码
主体代码:
public class WordCountStreamText {
public static void main(String[] args) throws Exception {
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env
.fromElements(WORDS)
.flatMap(new WordCountFlatMapFunction())
.keyBy(x -> x.f0)
.reduce(new WordCountReduceFunction())
.print();
// Streaming 程序必须加这个才能启动程序,否则不会有结果
env.execute("WordCountStreamText");
}
}
流处理与批处理WordCount任务的两个区别点:
- 创建env时流处理模式使用
StreamExecutionEnvironment
,批处理使用ExecutionEnvironment
- 按照每个单词计数时的分组,流处理模式使用
keyBy
方法,而批处理模式使用groupBy
方法
全部代码: