Flink流批一体化处理框架
Flink流批一体化处理框架
- 一、简介
- 二、框架对比
- 三、编程实现
- 1.流处理
- 2.批处理
- 四、结语
一、简介
Apache Flink 是一个框架和分布式处理引擎,支持实时流数据处理与离线数据批处理计算。用户案例有阿里、腾讯、华为、小米、滴滴、ebay、亚马逊等,比较知名的阿里双十一交易大屏实时展示技术就是建立在该框架之上。
二、框架对比
Spark Streaming是把流转化成一个个小的批来处理,Flink是把批当作一种有界的流。
1、Storm是第一代流处理框架,数据吞吐量和延迟上表现不尽人意,而且在数据准确性方面也存在不足。
2、Spark Streaming是第二代流处理框架,每次只能处理一小批数据,以接近实时处理的效果。
3、Flink是第三代流引擎框架,基于数据有界和无界的思想,可支持流式和批量处理,吞吐量更高,延迟更低。
摘自知乎
三、编程实现
1.流处理
所谓流处理,就是说有条消息通道,不断地有数据过来,然后进行处理。
我们用nc
监听9999端口(TCP服务器),客户端编程连接此服务器,接收消息进行wordcount统计。
创建TCP端口监听,若要创建udp端口加参数-u
即可:
nc -lk 9999
连接:
nc 127.0.0.1 9999
客户端连接后键盘发送消息即可:
客户端代码:
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>test01</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><dependencies><dependency><groupId>org.apache.flink</groupId><artifactId>flink-streaming-scala_2.11</artifactId><version>1.14.0</version></dependency><dependency><groupId>org.apache.flink</groupId><artifactId>flink-clients_2.11</artifactId><version>1.14.0</version></dependency></dependencies><build><plugins><!-- 该插件用于将Scala代码编译成class文件 --><plugin><groupId>net.alchim31.maven</groupId><artifactId>scala-maven-plugin</artifactId><version>3.4.6</version><executions><execution><!-- 声明绑定到maven的compile阶段 --><goals><goal>testCompile</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>3.0.0</version><configuration><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin></plugins></build>
</project>
FlinkStreamWordCount.scala
package com.llqqwwimport org.apache.flink.streaming.api.scala._object FlinkStreamWordCount {def main(args: Array[String]): Unit = {println("开始")//初始化流计算环境val env = StreamExecutionEnvironment.getExecutionEnvironment//读取数据val stream = env.socketTextStream("vm.test.com",9999)//转换计算val result = stream.flatMap(_.split(" ")).map((_, 1)).keyBy(0).sum(1)//打印结果到控制台result.print()//启动流式处理,如果没有该行代码上面的程序不会运行env.execute("WordCount")}
}
执行结果:
2.批处理
批处理,即处理离线数据,该数据不会再变化的。我们直接读取resources
目录下的文件进行单词统计。
FlinkBatchWordCount.scala
package com.llqqwwimport org.apache.flink.api.scala._object FlinkBatchWordCount {def main(args: Array[String]): Unit = {//初始化流计算环境val env = ExecutionEnvironment.getExecutionEnvironment//读取数据val file= getClass.getResource("/wc.txt");val data = env.readTextFile(file.getPath)//转换计算val result = data.flatMap(_.split(" ")).map((_, 1)).groupBy(0).sum(1).print()}
}
执行结果:
四、结语
本文只是在本地进行模拟运行,还没有提交到Flink引擎上运行。
学习资料:尚学堂Flink教程(Apache Flink 从入门到精通)
【转载请注明出处:https://leytton.blog.csdn.net/article/details/121066066】
Flink流批一体化处理框架相关推荐
- 阿里巴巴2020年双11: Flink流批一体化真的来了 (Flink Forward 2020 PPT)
随着双11在11月12日午夜结束,2020 双十一购物节的商品总销售额(GMV)达到741亿美元.在Apache Flink的支持下,整个节日期间,GMV数值将稳定地实时显示在我们的大屏幕中.此外, ...
- 40亿条/秒!Flink流批一体在阿里双11首次落地的背后
简介:今年的双11,实时计算处理的流量洪峰创纪录地达到了每秒40亿条的记录,数据体量也达到了惊人的每秒7TB,基于Flink的流批一体数据应用开始在阿里巴巴最核心的数据业务场景崭露头角,并在稳定性.性 ...
- Hologres+Flink流批一体首次落地4982亿背后的营销分析大屏
简介: 本篇将重点介绍Hologres在阿里巴巴淘宝营销活动分析场景的最佳实践,揭秘Flink+Hologres流批一体首次落地阿里双11营销分析大屏背后的技术考验. 概要:刚刚结束的2020天猫双1 ...
- flink 流批一体
目录 当我们谈论批流一体,我们在谈论什么? 一.流计算与批计算 一)流计算与批计算 二)流计算与批计算的比较 三)为什么要搞流批一体 二.流批一体的场景 一)数据集成的流批一体 二)数仓架构的流批一体 ...
- Flink 流批一体在小米的实践
摘要:本文整理自小米软件开发工程师金风在 Flink Forward Asia 2021 流批一体专场的演讲.本篇内容主要分为四个部分: 小米的大数据发展演变 流批一体的平台建设 流批一体应用场景 未 ...
- Flink流批一体在小米的实践
目录 0- 前言 1- 小米的大数据发展演变 2- 流批一体的平台建设 2.1- 元数据管理 2.2- 权限管理 2.3- 作业调度 2.4- Flink 的生态建设 3- 流批一体应用场景 4- 未 ...
- Flink 流批一体一站式平台 StreamX 来袭
背景 实时即未来,在实时处理流域 Apache Spark 和 Apache Flink 是一个伟大的进步,尤其是Apache Flink被普遍认为是下一代大数据流计算引擎, 我们在使用 Flink ...
- Flink流批一体从入门到入土(源码)
双十一流量洪峰将至,身为大数据工程师的你,还在苦学 Spark.Hadoop.Storm,却还没搞过 Flink?去年双十一,阿里在 Flink 实时计算技术的驱动下全程保持了"如丝般顺滑& ...
- Flink 流批一体的实践与探索
自 Google Dataflow 模型被提出以来,流批一体就成为分布式计算引擎最为主流的发展趋势.流批一体意味着计算引擎同时具备流计算的低延迟和批计算的高吞吐高稳定性,提供统一编程接口开发两种场景的 ...
最新文章
- C# 加载图片image --(C#)Image.FromFile 方法会锁住文件的原因及可能的解决方法
- Intel Realsense D435 python 实战(二)
- 您需要了解的几个XHTML标签
- canvas动画 电子白板_广东智慧电容式触摸屏维修,学校电子白板操作
- 币安选择InfStones作为以太坊2.0 Staking基础设施服务商
- 初试 spring web mvc
- Atiitt cdn技术总结 性能提升之道 目录 1. 组成 最简单的CDN网络由一个DNS服务器和几台缓存服务器组成:	1 1.1. CDN是一个经策略性部署的整体系统,包括分布式存储、负载均衡
- c语言编程中的幂函数如何编写,c语言幂函数_C语言循环与递归实现整数幂函数...
- 富士通服务器操作系统安装,U盘为富士通LIFEBOOK SH760笔记本安装原版win7系统教程...
- mysql用source恢复数据库_mysql source 还原数据库
- linux char大小,Linux基本数据类型大小——int,char,long int,long long int
- 应用示例:图像文字识别
- python web编程之django post请求
- Centos7安装gitlab服务器
- Windows操作系统小技巧
- 《GIT教程-廖雪峰》笔记
- js 正则验证手机号,用户名,密码
- 小白上楼梯(递归设计)
- Tuxedo基本命令和Tuxedo的ubb文件详解
- Android 性能分析工具整理汇总
热门文章
- 中科蓝汛----指示灯配置使用方法
- 多智能体强化学习思路整理
- 读《VR虚拟现实与AR增强现实的技术原理与商业应用》
- 登榜丨酷雷曼获“科技型中小企业”国家级认定
- 物联网应用技术专业是属于什么类
- 0716 POJ1222 EXTENDED LIGHTS OUT
- 2022-2028年中国半导体集成电路产业竞争现状及发展前景规划报告
- 使用反射判断对象的值是否为空并赋新值操作
- 【机器学习|数学基础】Mathematics for Machine Learning系列之线性代数(26):线性变换的矩阵表达式
- 桌面计算机找不到硬盘,电脑BIOS启动项找不到硬盘,该怎么办?