Flink WorkCount代码
Flink-scala所需依赖
<properties>
<flink.version>1.7.0</flink.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-scala_2.11</artifactId>
<version>${flink.version}</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-scala_2.11</artifactId>
<version>${flink.version}</version>
</dependency>
</dependencies>
流式处理WorkCount代码
import org.apache.flink.streaming.api.scala.{DataStream, StreamExecutionEnvironment}
import org.apache.flink.streaming.api.windowing.time.Time
object WordCount {
//创建WordWithCount样例类,用来存储数据最终统计结果
case class WordWithCount(word: String, count: Int)
def main(args: Array[String]): Unit = {
//获取上下文对象(初始化环境)
val streamExecutionEnvironment: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment
//获取netcat服务的数据
val dataStream: DataStream[String] = streamExecutionEnvironment.socketTextStream("slave4", 9000)
//必须要引入这个包,包含了计算用到的方法
import org.apache.flink.api.scala._
//对获取到的数据进行处理
val dataStream1: DataStream[WordWithCount] = dataStream.flatMap(_.toLowerCase.split(" ") filter (_.nonEmpty))
.map(WordWithCount(_, 1))
.keyBy("word")
.timeWindow(Time.seconds(2), Time.seconds(2))
.reduce((a, b) => WordWithCount(a.word, a.count + b.count))
//打印结果,设置并行度为1
dataStream1.print.setParallelism(1)
//启动执行
streamExecutionEnvironment.execute("WordCount")
}
}
批式处理WordCount代码
import org.apache.flink.api.scala.{DataSet, ExecutionEnvironment}
object WordCount {
def main(args: Array[String]): Unit = {
//获取上下文对象(初始化环境)
val executionEnvironment: ExecutionEnvironment = ExecutionEnvironment.getExecutionEnvironment
//获取文件中的数据
val dataSet: DataSet[String] = executionEnvironment.readTextFile("./src/main/data/wordCount.txt")
//必须要引入这个包,包含了计算用到的方法
import org.apache.flink.api.scala._
//对获取到的数据进行处理
val aggregateDataSet: AggregateDataSet[(String, Int)] = dataSet.flatMap(_.toLowerCase.split(" ") filter (_.nonEmpty))
.map((_, 1))
.groupBy(0)0000000
.sum(1)
//打印结果
aggregateDataSet.print
}
}
流式处理与批式处理的区别
流式处理:Streaming
初始化对象:StreamExecutionEnvironment
返回值类型:DataStream
批式处理:Batch
初始化对象:ExecutionEnvironment
返回值类型:DataSet
Flink WorkCount代码的更多相关文章
- Flink资料(8) -- Flink代码贡献的指导及准则
本文翻译自Contributing Code ----------------------------------------- Apache Flink是由自愿的代码贡献者维护.优化及扩展的.Apa ...
- 修改代码150万行!与 Blink 合并后的 Apache Flink 1.9.0 究竟有哪些重大变更?
8月22日,Apache Flink 1.9.0 正式发布,早在今年1月,阿里便宣布将内部过去几年打磨的大数据处理引擎Blink进行开源并向 Apache Flink 贡献代码.当前 Flink 1. ...
- flink实时数仓从入门到实战
第一章.flink实时数仓入门 一.依赖 <!--Licensed to the Apache Software Foundation (ASF) under oneor more contri ...
- Flink - DataStream
先看例子, final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); D ...
- 新一代大数据处理引擎 Apache Flink
https://www.ibm.com/developerworks/cn/opensource/os-cn-apache-flink/index.html 大数据计算引擎的发展 这几年大数据的飞速发 ...
- 如何参与flink开源项目
参与flink开源项目 https://flink.apache.org/how-to-contribute.html 1.回答社区问题 2.撰写bug报告 3.对于改进建议或新的特征 4.帮助别人并 ...
- flink基础教程读书笔记
数据架构设计领域发生了重大的变化,基于流的处理是变化的核心. 分布式文件系统用来存储不经常更新的数据,他们也是大规模批量计算所以来的数据存储方式. 批处理架构(lambda架构)实现计数的方式:持续摄 ...
- Flink(一)Flink的入门简介
一. Flink的引入 这几年大数据的飞速发展,出现了很多热门的开源社区,其中著名的有 Hadoop.Storm,以及后来的 Spark,他们都有着各自专注的应用场景.Spark 掀开了内存计算的先河 ...
- 什么是Apache Flink
大数据计算引擎的发展 这几年大数据的飞速发展,出现了很多热门的开源社区,其中著名的有 Hadoop.Storm,以及后来的 Spark,他们都有着各自专注的应用场景.Spark 掀开了内存计算的先河, ...
随机推荐
- Mongoose 预定义模式修饰符 Getters 与 Setters 自定义修饰符
mongoose 预定义模式修饰符 mongoose 提供的预定义模式修饰符,可以对我们增加的数据进行一些格式化,主要有:lowercase.uppercase .trim,这里不一一演示,对trim ...
- 第一章 Electron介绍 | Electron in Action(中译)
Github 官方地址 代表作: Visual Studio Code Atom - Code editor. Github开源的代码编辑器,Electron起源地 Visual Studio Cod ...
- 为什么 Redis 单线程能支撑高并发?
阅读本文大概需要 4 分钟. 作者:Draveness 最近在看 UNIX 网络编程并研究了一下 Redis 的实现,感觉 Redis 的源代码十分适合阅读和分析,其中 I/O 多路复用(mutipl ...
- GC(一)内存管理与垃圾回收
参考文章: 内存分配.GC原理与垃圾收集器:http://www.importnew.com/23035.html g1垃圾回收器:http://blog.jobbole.com/109170/ cm ...
- 原创:【ajax | axios跨域简单请求+复杂请求】自定义header头Token请求Laravel5后台【亲测可用】
如标题:我想在ajax的header头增加自定义Token进行跨域api认证并调用,api使用laravel5编写,如何实现? 首先,了解下CORS简单请求和复杂请求. -- CORS简单请求 -- ...
- dubbo连接过程
场景1 启动时 dubbo服务提供端在Zookeeper上注册的节点目录:假设接口名称是:com.bob.dubbo.service.CityDubboService dubbo服务提供端连接到注册中 ...
- webRTC 基础介绍
WebRTC 全称为:Web Real-Time Communication.它是为了解决 Web 端无法捕获音视频的能力,并且提供了 peer-to-peer(就是浏览器间)的视频交互.实际上,细分 ...
- SpringBoot Error creating bean with name 'dataSource' defined in class path resource。。。
启动spring boot项目出错 解决方法在Application类上增加:@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration ...
- sql server 利用存储过程http请求调用URL链接访问方法
sp_configure ; GO RECONFIGURE; GO sp_configure ; GO RECONFIGURE; GO EXEC sp_configure 'Ole Automatio ...
- mysql删除唯一索引
在项目中用spring data jpa指定了一个唯一索引: @Entity @Table(name = "t_product") @Getter @Setter @AllArgs ...