flink
文章平均质量分 94
Yohohaha
这个作者很懒,什么都没留下…
展开
-
flink学习(七)——DataStream API介绍
前面我们尝试用flink写了一个WordCount程序,并且介绍了flink提供的api层级,接下来我们正式来学习flink的DataStream API。为什么先学习DataStream API,而不是ProcessFunction API,这是因为ProcessFunction API是通过DataStream API调用的,它作为DataStream API的补充,可以实现DataStream API所不能实现的一些高级功能。DataStream程序结构剖析我们回到WordCount的那个例原创 2021-01-13 16:36:27 · 686 阅读 · 0 评论 -
flink学习(六)——flink api层次
在前文我们写了一个WordCount程序体验了一下flink程序的编写。在本篇中我们详细学习下flink api的分类及其应用场景。Flink’s APIflink提供了4个层次的api抽象:在最下层,就是有状态流式编程,它提供了状态编程和时间编程(时间编程后面会学到)的基础能力。它通过Process Function嵌入到DataStream API中。它It is embedded into the DataStream API via the Process Function. It all原创 2020-12-21 22:45:46 · 1750 阅读 · 0 评论 -
flink学习(五)——浅尝WordCount
前面学了那么多,我们还没有上手写过代码,现在我们来学习如何用flink实现流式的WordCount程序。准备工作java开发环境,推荐Intellij IDEA。netcat程序。如果是windows系统,可以到https://eternallybored.org/misc/netcat/网站下载netcat,并解压配好环境变量即可;如果是centos系统,直接yum install -y nc即可;pom文件配置 <!-- Apache Flink dependencies原创 2020-12-19 20:26:28 · 405 阅读 · 1 评论 -
flink学习(四)——flink任务执行原理详解
在前文中我们学习了flink的整体架构和任务提交执行的流程。现在我们来学习flink在内部具体如何执行任务。任务执行图在flink中有四层执行图,StreamGraph -> JobGraph -> ExecutionGraph -> 物理执行图,如图所示:StreamGraph:是根据用户通过 Stream API 编写的代码生成的最初的图,用来表示程序的拓扑结构。每个转换操作会生成一个StreamNode,两个StreamNodes之间由StreamEdge连接在一起,Str原创 2020-12-19 15:08:59 · 3247 阅读 · 3 评论 -
flink学习(三)——flink整体架构
flink作为一个分布式计算引擎,它可以在所有主流集群资源管理器中,如Hadoop YARN,Apache Mesos和Kubernetes,也可以运行在独立集群中。当然,它还提供了本地运行模式,可以供我们开发测试。架构组成flink集群中最重要的两个进程组件是:JobManager 和 TaskManager。这是典型的主从架构:一个集群中只能有一个JobManager(HA部署的除外,它会有一个leader jobmager和一个standby jobmanager),但是可以有多个TaskMan原创 2020-12-19 00:15:07 · 808 阅读 · 1 评论 -
flink学习(二)——flink怎么进行流计算
Apache Flink is a framework and distributed processing engine for stateful computations over unbounded and bounded data streams.上述那句话是flink官网对flink的描述。我们可以总结出两点计算特征:分布式有状态计算分布式很好理解。在大数据时代,作为数据处理引擎,分布式是必须的能力。...原创 2020-12-04 16:09:20 · 1182 阅读 · 0 评论 -
flink学习(加餐)——flink-mysql-cdc设置从指定position消费
目前发布的flink-connector-mysql-cdc(version:1.1.0)不支持从指定的mysql bin-log文件的某个position开始消费。不过也不是没有办法,我们可以增加一些额外配置使其支持。参考自Support read from specific MySQL Binlog position它的原理是通过设置OFFSET_STATE_VALUE属性,解析出bin-log文件和对应的position,在启动的时候即可指定position消费。OFFSET_STATE_VA原创 2020-12-04 11:25:09 · 1253 阅读 · 0 评论 -
flink学习(一)——什么是流处理
流处理引入为了理解流处理,我们先来看看批处理。批处理是把我们感兴趣的数据一起搜集下来加以处理,产生结果。比如说双十一当天有多少个用户购买了商品,每个用户分别买了多少件,分别是哪些品类的商品。过去需要第二天或者几个小时后才能出统计结果,我们才能知道双十一当天或者截止到某个小时有多少人买了东西等,这些是批处理的结果。批处理的结果生成相距用户实际行为的发生间隔了很长一段时间,往往是一天或者几小时。在现在的互联网竞争下,有时候这些数据统计延迟是无法接受的,我们需要更快地知道当前最新的数据状态,这就需要流处理(也可原创 2020-12-03 02:27:24 · 577 阅读 · 0 评论 -
flink学习(加餐)——job任务状态变化
我们来看一下flink官网的图:光看图就头晕了,我们可以来整理一下。首先flink job任务状态总共有:CreatedRunningFinishedFailedCanceledFailingCancelingRestartingSuspended根据个人理解,我们可以把这些状态分为四大类:起始态中间态最终态过渡态起始态表示任务启动时的状态,中间态表示任务运行时的状态,最终态表示任务最后的状态,过渡态表示任务在上述这些状态转化时中间过渡的状态。这样我们就把九个状原创 2020-12-03 01:56:36 · 3656 阅读 · 1 评论