Flink基本使用
小于 1 分钟大数据JAVAFlink
概述
Flink是一个基于流的数据处理引擎,主要过程包括数据的来源、转换、结果存储。
- 来源
- 元素集合
- env.fromElements
- env.fromColletion
- env.fromSequence(start,end);
- 文件
- env.readTextFile(本地文件);
- env.readTextFile(HDFS文件);
- socket
- env.socketTextStream("ip", 5555)
- 自定义Source
- 并行度为1
- SourceFunction
- RichSourceFunction
- 并行度大于1
- ParallelSourceFunction
- RichParallelSourceFunction
- 并行度为1
- 与其他第三方系统connect对接,如kafka,es等
第一个Demo
public static void main(String [] args) throws Exception {
//构建执行任务环境以及任务的启动的入口, 存储全局相关的参数
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.setRuntimeMode(RuntimeExecutionMode.AUTOMATIC);
//设置并行度
//env.setParallelism(1);
//相同类型元素的数据流 source
DataStream<String> stringDS = env.fromElements("java,SpringBoot", "spring cloud,redis", "kafka,小滴课堂");
stringDS.print("处理前");
// FlatMapFunction<String, String>, key是输入类型,value是Collector响应的收集的类型,看源码注释,也是 DataStream<String>里面泛型类型
DataStream<String> flatMapDS = stringDS.flatMap(new FlatMapFunction<String, String>() {
@Override
public void flatMap(String value, Collector<String> collector) throws Exception {
String [] arr = value.split(",");
for(String str : arr){
collector.collect(str);
}
}
});
//输出 sink
flatMapDS.print("处理后");
//DataStream需要调用execute,可以取个名称
env.execute("flat map job");
}