前言:
借助netcat向本机指定端口发送文本信息,而后通过Flink实时接收,并输出个数在控制台
public class Netcat {
public static void main(String[] args) throws Exception {
StreamExecutionEnvironment see = StreamExecutionEnvironment.getExecutionEnvironment();
//设置监控数据流时间间隔(官方叫状态与检查点)
see.enableCheckpointing(5000);
DataStreamSource data = see.socketTextStream("localhost", 8888);
data.flatMap(new FlatMapIterator() {
@Override
public Iterator flatMap(String s) throws Exception {
return Arrays.asList(s.split(" ")).iterator();
}
}).map(new MapFunction>() {
@Override
public Tuple2 map(String s) throws Exception {
return new Tuple2<>(s, 1);
}
}).keyBy(0).sum(1).print();
see.execute();
}
}
输入:
结果:



