Flink
flink开发实践积累
富有一文
书山有路勤为径,学海无涯苦作舟
展开
-
Flink基础07-Flink的状态一致性
目录状态一致性一致性检查点(checkpoint)端到端(end-to-end)状态一致性端到端的精确一次(exactly-once)保证Flink+Kafka端到端状态一致性的保证什么是状态一致性(1)有状态的流处理,内部每个算子任务都可以有自己的状态(2)对于流处理器内部来说,所谓的状态一致性,即计算结果要保证准确(3)一条数据不应该丢失,也不应该重复计算(4)在遇到故障...原创 2020-03-11 10:31:50 · 152 阅读 · 0 评论 -
Flink基础06-Flink的容错机制
目录一致性检查点(checkpoint)从检查点恢复状态Flink检查点算法保存点(save points)一致性检查点(checkpoint)(1) flink故障恢复机制的核心,就是应用状态的一致性检查点(2) 有状态流应用的一直检查点,其实就是所有任务的状态,在某个时间点的一份拷贝(一份快照);这个时间点,应该是所有任务都恰好处理完一个相同的输入数据的时候从检查点恢复状态...原创 2020-03-07 15:05:12 · 137 阅读 · 0 评论 -
Flink基础05-Flink状态管理
目录Flink中的状态算子状态(Operator State)键控状态(Keyed State)状态后端(State Backends)Flink中的状态(1)由一个任务维护,并且用来计算某个结果的所有数据,都属于这个任务的状态(2)可以认为状态就是一个本地变量,可以被任务的业务逻辑访问(3)Flink会进行状态管理,包括状态一致性、故障处理以及高效存储和访问,以便开发人员可以专...原创 2020-03-07 11:28:08 · 131 阅读 · 0 评论 -
Flink基础04-Flink中的时间语义和watermark
目录:Flink中的时间语义设置Event Time水位线(Watermark)watermark的传递、引入和设定Flink中的时间语义Event Time : 事件创建的时间Ingestion Time:数据进入Flink的时间Processing Time:执行操作算子的本地系统时间,与机器有关Event Time 可以从日志数据的时间戳(timestamp)中提取设置...原创 2020-03-06 22:40:27 · 502 阅读 · 0 评论 -
Flink基础03-Flink window API
目录:window概念window类型window APIwindow概念一般真实的流都是无界的,怎样处理无界的数据?可以把无限的数据流进行切分,得到有限的数据集进行处理,即得到有界流窗口(window)就是将无限流切割为有限流的一种方式,它会将流数据分发到有限大小的桶(bucket)中进行分析window类型时间窗口(Time Window)滚动时间窗口(Tumbling ...原创 2020-03-06 20:02:50 · 196 阅读 · 0 评论 -
Flink基础02-Flink运行架构
目录:Flink运行时的组件任务提交流程任务调度原理作业管理器(JobManager)控制一个应用程序执行的主进程,即每个应用程序都会被一个不同的JobManager所控制执行JobManager会先接收到要执行的应用程序,这个应用程序会包括:作业图(JobGraph)、逻辑数据流图(logical dataflow graph)和打包了所有的类、库和其他资源的JAR包JobMan...原创 2020-03-06 16:47:12 · 198 阅读 · 0 评论 -
Flink基础01-flink简介
#概念Flink: 是一个框架和分布式处理引擎,用于对无界和有界数据流进行状态计算#应用场景:为什么选择Flink流数据更真实地反映了我们的生活方式传统的数据架构是基于有限数据集的低延迟、高吞吐、结果的准确性和良好的容错性行业:电商和市场营销:数据报表、广告投放、业务流程需要物联网:传感器实时数据采集和显示、实时报警、交通运输业电信业:基站流量调配银行和金融业:实时结算和通知...原创 2020-03-06 14:18:22 · 259 阅读 · 0 评论 -
Flink集群之Current usage: 106.2 MB of 1 GB physical memory used; 2.1 GB of 2.1 GB virtual memory used
文章目录出错问题报告出错点出错问题报告org.apache.flink.client.deployment.ClusterDeploymentException: Couldn't deploy Yarn session cluster at org.apache.flink.yarn.AbstractYarnClusterDescriptor.deploySessionCluster(Ab...原创 2020-03-31 16:37:09 · 2668 阅读 · 5 评论 -
Flink集群之Flink Yarn Cluster部署
文章目录前言准备环境前言flink应用提交到Yarn上目前支持两种模式:(1)Yarn Session Model:Flink会向hadoop Yarn 申请足够多的资源,并在Yarn上启动长时间运行的Flink Session集群,用户可以通过RestAPI或Web页面将Flink任务提交到Flink Session集群上运行。(2)Single Job Model:每个Flink任务单...原创 2020-03-31 20:21:30 · 1554 阅读 · 0 评论 -
Flink集群之flink集群的启动问题:start-cluster.sh
flink的启动问题:使用./start-cluster.sh启动,千万不能使用sh start-cluster.sh为什么?因为在start-cluster.sh中指定的解析器是/usr/bin/env bash,而不是我们常见的shell解析器,所以会出错,一般情况,只要不是shell解析器,都采用“./脚本名”的方式运行脚本...原创 2020-03-31 09:20:55 · 5495 阅读 · 0 评论 -
Flink集群之Flink Standalone集群搭建
文章目录Standalone ClusterYarn ClusterStandalone ClusterYarn Cluster原创 2020-03-31 07:58:12 · 259 阅读 · 0 评论 -
Flink集群之Flink Session On Yarn容错配置
文章目录yarn.reallocate-failedyarn.maximun-failed-containersyarn.application-attemptsyarn.reallocate-failed集群中TaskManager失败后是否被重新拉起,设定为True表示新分配资源并拉起失败的TaskManager,默认为True,本质上是Yarn是否重新分配Taskmanager的Cont...原创 2020-03-27 15:37:08 · 463 阅读 · 0 评论 -
Flink集群之Flink集群配置优化项
文章目录Flink中Jobmanager、TaskManager组件常用优化配置项jobmanager.rpc.addressjobmanager.heap.mbtaskmanager.heap.mbtaskmanager.numberOfTaskSlotsparallelism.defaulttaskmanager.tmp.dirs注:动态参数Flink中Jobmanager、TaskMana...原创 2020-03-26 20:10:44 · 1003 阅读 · 0 评论 -
Window Function超详细解析
文章目录用于测试的CustomSourceFunction增量聚合函数ReduceFunctionAggregateFunctionFoldFunction全量窗口函数ProcessWindowFunction增量聚合函数与全量窗口函数整合ProcessWindowFunction状态操作用于测试的CustomSourceFunction增量聚合函数计算性能较高,占用存储空间少,主要基于中间...原创 2020-03-30 21:46:03 · 4116 阅读 · 0 评论 -
Flink五步开发之第五步:Execute
文章目录execute()执行程序execute()执行程序streamExecutionEnvrinonment.execute(“JobName”)给任务命名,方便在集群上观察原创 2020-03-27 21:00:37 · 2572 阅读 · 0 评论 -
Flink核心概念——State、StateBackend
文章目录用于测试的CustomSourceFunctionStateOperatorState 算子状态的作用范围限定为算子任务ListStateUnionListStateBroadcastStateKeyedState 根据输入数据流中定义的键(key)来维护和访问ValueStateListStateMapStateReducingState&AggregatingStateStat...原创 2020-03-13 22:17:23 · 276 阅读 · 0 评论 -
Flink核心概念之window
**目录:自定义SourceFunction用于测试时间窗口滚动时间窗口可以设置并行度timeWindow(Time.seconds(10))window(TumblingProcessingTimeWindows.of(Time.seconds(10)))并行度始终为1timeWindowAll()windowAll()滑动时间窗口可以设置并行度timeWindow(T...原创 2020-03-12 16:59:01 · 430 阅读 · 0 评论 -
TypeInformation定义报错
当使用Scala API开发Flink应用时,如果使用到Flink已经通过TypeInformation定义的数据类型时,TypeInformation类不会自动创建,而是使用隐式参数的方式引入,代码不会直接抛出编码异常,但是当启动Flink应用程序时,会报“could not find implicit value for evidence parameter of type TypeInfor...原创 2020-03-16 20:26:39 · 581 阅读 · 0 评论 -
Managed State(托管状态) Vs RawState(原生状态)
在Flink中的KeyedState和OperatorState都有两种形式,有什么区别?文章目录Managed State(托管状态)RawState(原生状态)推荐Managed State(托管状态)由Flink Runtime控制和管理状态数据,并将状态数据转换成为内存的Hash tables或 RocksDB的对象存储,然后将这些数据通过内部的接口持久化到checkpoints中,...原创 2020-03-25 22:22:50 · 671 阅读 · 0 评论 -
Flink的作业链
文章目录基本概念禁用全局链条禁用局部链条基本概念**概念:**使用链条将相关性强的操作绑定在一起,让上下游的Task在同一个Pipeline中执性**好处:**避免因为数据在网络或者线程间传输导致的开销禁用全局链条streamExecutionEnvrinonment.disableOperatorChaining()关闭全局作业链后,使用startNewChain()创建对应Ope...原创 2020-03-25 22:11:57 · 439 阅读 · 0 评论 -
Flink中Checkpoint常用配置7点
直接保存待用吧^w// 默认情况是不开启的 // 设置开启检查点,参数为时间间隔,单位为毫秒 env.enableCheckpointing(1000) // 设定语义模式,默认情况是exactly_once env.getCheckpointConfig.setCheckpointingMode(CheckpointingMode.EXACTLY_ONCE) ...原创 2020-03-19 11:02:09 · 1671 阅读 · 0 评论 -
Flink开发五步之思维导图总领
原创 2020-03-12 09:16:32 · 224 阅读 · 0 评论 -
Flink开发五步之第四步:Sink
目录:一、用于测试的自定义SourceFunction二、Sink To Kafka一、用于测试的自定义SourceFunctionpackage com.fouth_sinkimport org.apache.flink.streaming.api.functions.source.{RichSourceFunction, SourceFunction}import scala.ut...原创 2020-03-11 21:35:23 · 293 阅读 · 0 评论 -
Flink开发五步之第三步:Transform算子汇总(直接动手操练吧)
目录:mapflatmapfilterkeyby + reduce滚动聚合算子(rolling Aggregation)sum()min()max()minBy()maxBy()split和selectconnect和comapunionsplit和select的新写法:使用processFunction 结合 geiSideOutPut 暂时没学会,后期补mapp...原创 2020-03-11 17:29:44 · 426 阅读 · 0 评论 -
Flink开发五步之第二步:Source
目录:一、Collection/Elements Source 示例二、Text Source 示例三、Socket Source 示例四、Kafka Source 示例五、自定义 Source 示例一、Collection/Elements Source 示例package com.second_sourceimport org.apache.flink.streaming.ap...原创 2020-03-11 14:40:07 · 253 阅读 · 1 评论 -
Flink+Kafka开发流程
第一步:启动zookeeper集群(kafka依赖于zookeeper集群)启动命令:sh zkServer.sh start查看状态:sh zkServer.sh status关闭命名:sh zkServer.sh stop第二步:启动kafka集群启动命令:sh kafka-server-start.sh /app/kafka/config/server.properties...原创 2020-03-11 10:46:13 · 526 阅读 · 0 评论 -
Flink开发五步之第一步:执行环境设定
目录:一、ExecutionEnvironment:批量数据处理环境二、StreamExecutionEnvironment:流式数据处理环境一、设定ExecutionEnvironment:批量数据处理环境的三种方式(1)设定Flink运行环境,如果在本地启动则创建本地执行环境,如果在集群启动则创建集群执行环境val env1: ExecutionEnvironment = Execu...原创 2020-03-11 13:05:39 · 1308 阅读 · 0 评论