当前位置:   article > 正文

【Flink】flink入门案例(2)_tuple2 flink

tuple2 flink

目录

Flink的API

Flink的编程模型

Flink的入门案例

需求

编码步骤

DataSet编码实现

新建maven工程

修改pom文件,引入依赖

建立包和类

编写代码

执行,查看结果

DataStream编码实现

创建类,并编写代码

执行,查看结果

在集群上运行

打jar包

上传服务器

提交时需要指定主类

per-job模式提交任务-批处理模式

 在yarn的web ui上查看执行情况

再次以流处理模式提交任务

对代码进行修改,新建一个类,添加存储到hdfs的代码

重新打包,并上传服务器

指定新的主类,重新提交任务

在yarn的web ui上查看

在hadoop上查看生成的文件


Flink的API

Flink提供了多个层次的api供开发者使用,越往上抽象程度越高,使用起来越方便;越往下越底层,使用难度就越大。DataSet已经不提倡使用了,被流批一体的DataStream代替。

 

Flink的编程模型

Flink的应用程序结构主要包括三部分:Source/Transformation/Sink

 

Flink的入门案例

需求

使用Flink实现WordCount

编码步骤

  1. 准备环境-env
  2. 准备数据-source
  3. 处理数据-transformation
  4. 输出结果-sink
  5. 触发执行

 

DataSet编码实现

新建maven工程

修改pom文件,引入依赖

导入成功

 

 

建立包和类

 这个当时没截图了,不过下面结果那的图有里有包和类的结构

编写代码

  1. package cn.edu.hgu.flink;
  2. import org.apache.flink.api.common.functions.FlatMapFunction;
  3. import org.apache.flink.api.common.functions.MapFunction;
  4. import org.apache.flink.api.common.operators.Order;
  5. import org.apache.flink.api.java.DataSet;
  6. import org.apache.flink.api.java.ExecutionEnvironment;
  7. import org.apache.flink.api.java.operators.UnsortedGrouping;
  8. import org.apache.flink.api.java.tuple.Tuple2;
  9. import org.apache.flink.util.Collector;
  10. /**
  11. * 使用Flink中的DataSet实现单词计数
  12. */
  13. public class WordCount {
  14. public static void main(String[] args) throws Exception {
  15. //1·准备环境-env
  16. ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
  17. //2·准备数据-source
  18. DataSet<String> lineDS = env.fromElements("flink hadoop java hbase",
  19. "hadoop flink 0","hadoop hbase flink");
  20. //3·处理数据-transformation
  21. // 3.1 将每一行数据切分成一个一个的单词,组成一个集合
  22. DataSet<String> wordDS = lineDS.flatMap(new FlatMapFunction<String, String>() {
  23. @Override
  24. public void flatMap(String s, Collector<String> collector) throws Exception {
  25. //参数 s 就是一行行的数据再将每一行切分成一个个的单词
  26. String[] words = s.split(" ");
  27. // 将切分的单词收集起来,发到集合中去
  28. for (String word:words){
  29. collector.collect(word);
  30. }
  31. }
  32. });
  33. // 3.2对集合中的每一个单词记为1,成为一个三元组集合
  34. DataSet<Tuple2<String,Integer>> wordAndOneDS = wordDS.map(new MapFunction<String, Tuple2<String, Integer>>() {
  35. @Override
  36. public Tuple2<String, Integer> map(String s) throws Exception {
  37. // 此处的s就是进来的一个个单词,再跟一组成一个二元组返回
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/1007949
推荐阅读
相关标签
  

闽ICP备14008679号