flink 数据流处理
1、创建类方法StreamWordCount
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
/**
* @Author ***
* @email ***@***.com.cn
* @Date 2021/5/21 9:16
* @Version 1.0
*/
public class StreamWordCount {
public static void main(String[] args) throws Exception{
// 1、创建流处理执行环境
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
// **设置并行度(线程)**
env.setParallelism(8);//最大线程分区为8,控制台输出最大值为“8>”
// 2、从文件读取数据
String inputPuth = "F:\\project\\learnflink\\src\\main\\resources\\test.txt";
DataStreamSource<String> inputDataStream = env.readTextFile(inputPuth);
// 3、基于数据流进行转换计算,调用笔记(一)中的MyFlatMapper();
SingleOutputStreamOperator<Tuple2<String, Integer>> resultStream = inputDataStream.flatMap(new WordCount.MyFlatMapper())
.keyBy(0)
.sum(1);
// 4、输出
resultStream.print();
// 5、执行任务
env.execute();
}
}
执行main方法
控制台输出
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
7> (3333,1)
8> (ddd,1)
7> (ccc,1)
8> (ccca,1)
7> (bbbb,1)
1> (2222,1)
5> (aaa,1)
5> (aaa,2)
5> (aaa,3)
5> (aaa,4)
2> (222,1)
2> (111,1)
6> (5555,1)
1> (4444,1)
未完待续…