初识Flink
环境搭建和部署
入门案例
1,统计词出现格式
1.1,使用Lambda表达式
public class WordCount01 {
public static void main(String[] args) {
// 设置用户名在Linux下运行,指定HADOOP用户权限
System.setProperty("HADOOP_USER_NAME","root");
//env
StreamExecutionEnvironment env = StreamExecutionEnvironment.getEnvironment();
env.setRuntimeMode(RuntimeExecutionMode.AUTOMATIC);//自动匹配,流,批
//source
DataStream<String> lines= env.fromElements("welcome to flink world", "welcome to flink", "welcome flink");
//transformation--etl
// 切割
DataStream<String> words= words.flatMap(String word, Collector<String> out->{
Arrays.stream(word.split(" ")).foreach(out:collect)
}).returns(Type.STRING);
// 标记
DataStream<Tuple2<String,Integer>> wordAndOne = words.map((String value) -> Tuple2.of(value, 1))
.returns(Types.TUPLE(Types.STRING, Types.INT));
// 分组
KeyedStream<Tuple2<String,Integer>,String> grouped = wordAndOne.keyBy((KeySelector<Tuple2<String,Integer>,String>)t->t.f0);
// 统计
SingleOutputStreamOperator<String> result = grouped.sum(1);
//sink
//输出
env.print();
//启动并执行
env.execute("word count");
}
}