Flink
文章平均质量分 71
GOD_WAR
喜欢钻研大数据、python、机器学习、人工智能...
展开
-
Flink SQL CDC 13 条生产实践经验
摘要:7月,Flink 1.11 新版发布,在生态及易用性上有大幅提升,其中 Table & SQL 开始支持 Change Data Capture(CDC)。CDC 被广泛使用在复制数据、更新缓存、微服务间同步数据、审计日志等场景,本文由社区由曾庆东同学分享,主要介绍 Flink SQL CDC 在生产环境的落地实践以及总结的实战经验,文章分为以下几部分: 项目背景 解决方案 项目运行环境与现状 具体实现 踩过的坑和学到的经验 总结 .原创 2020-09-04 22:58:11 · 3281 阅读 · 4 评论 -
滴滴基于 Flink 的实时数仓建设实践
随着滴滴业务的高速发展,业务对于数据时效性的需求越来越高,而伴随着实时技术的不断发展和成熟,滴滴也对实时建设做了大量的尝试和实践。本文主要以顺风车这个业务为引子,从引擎侧、平台侧和业务侧各个不同方面,来阐述滴滴所做的工作,分享在建设过程中的经验。1.实时数仓建设目的随着互联网的发展进入下半场,数据的时效性对企业的精细化运营越来越重要,商场如战场,在每天产生的海量数据中,如何能实时有效的挖掘出有价值的信息, 对企业的决策运营策略调整有很大帮助。其次从智能商业的角度来讲,数据的结果代表了用户的...转载 2020-08-31 22:32:48 · 623 阅读 · 1 评论 -
基于 Flink 的实时数仓典型 ETL场景实现方案
本文将从数仓诞生的背景、数仓架构、离线与实时数仓的对比着手,综述数仓发展演进,然后分享基于 Flink 实现典型 ETL 场景的几个方案。1.实时数仓的相关概述1.1 实时数仓产生背景我们先来回顾一下数据仓库的概念。数据仓库的概念是于 90 年代由 Bill Inmon 提出, 当时的背景是传统的 OLTP 数据库无法很好的支持长周期分析决策场景,所以数据仓库概念的 4 个核心点,我们要结合着 OLTP 数据库当时的状态来对比理解。 面向主题的:数据仓库的数据组织方式与 OLTP原创 2020-08-24 21:53:45 · 1829 阅读 · 1 评论 -
Apache Flink SQL
本篇核心目标是让大家概要了解一个完整的 Apache Flink SQL Job 的组成部分,以及 Apache Flink SQL 所提供的核心算子的语义,最后会应用 TumbleWindow 编写一个 End-to-End 的页面访问的统计示例。1.Apache Flink SQL Job 的组成我们做任何数据计算都离不开读取原始数据,计算逻辑和写入计算结果数据三部分,当然基于 ApacheFlink SQL 编写的计算 Job 也离不开这个三部分,如下所所示:如上所示,一个完整的 Ap转载 2020-07-31 10:05:31 · 251 阅读 · 0 评论 -
Flink 参数配置和常见参数调优
Flink参数配置jobmanger.rpc.address jm的地址。 jobmanager.rpc.port jm的端口号。 jobmanager.heap.mb jm的堆内存大小。不建议配的太大,1-2G足够。 taskmanager.heap.mb tm的堆内存大小。大小视任务量而定。需要存储任务的中间值,网络缓存,用户数据等。 taskmanager.numberOfTaskSlots slot数量。在yarn模式使用的时候会受到yarn.scheduler.maximum-allo原创 2020-07-27 11:34:54 · 4075 阅读 · 1 评论 -
Flink Window Join机制
Flink Window Join机制window join连接两个流的元素,它们共享一个公共key并位于同一个窗口中。可以使用flink window定义这些窗口,并对来自这两个流的元素求值。然后将两边的元素传递给用户定义的JoinFunction或FlatJoinFunction,用户可以在其中发出满足连接条件的结果。参考Flink Stream Joining,一般用法概括如下:stream.join(otherStream) .where(<KeySelector&.原创 2020-07-24 22:01:19 · 1381 阅读 · 0 评论 -
Flink CEP 复杂事件处理
1 复杂事件1.1 引入在Flink RichFunction&state这篇博文中我们一起学习了下如何结合使用keyBy state和TreeSet在一条无界流中进行全局的分组求top n操作,可以解决一些实时看板相关的业务问题。在Flink BroadcastStream这篇博文中我们也学习到了如何使用广播流来处理监控规则经常变更的程序日志监控业务。那么现在我们又遇到了一个新的业务需求:判断一个用户在点击了商品之后是否立即进行了下单付款操作,如果是的话将用户名和点击时间以及下单付款时原创 2020-07-24 21:49:54 · 746 阅读 · 3 评论 -
Flink中allowedLateness介绍
1、简介Flink中借助watermark以及window和trigger来处理基于event time的乱序问题,那么如何处理“late element”呢?也许有人会问,out-of-order element与late element有什么区别?不都是一回事么?答案是一回事,都是为了处理乱序问题而产生的概念。要说区别,可以总结如下:1、通过watermark机制来处理out-of-order的问题,属于第一层防护,属于全局性的防护,通常说的乱序问题的解决办法,就是指这类;2、通过窗原创 2020-07-23 08:53:40 · 661 阅读 · 0 评论 -
Flink 容错性机制- barrier(屏障)
我们知道Flink提供了容错机制,能够在应用失败的时候重新恢复任务。这个机制主要就是通过持续产生快照的方式实现的。Flink快照主要包括两部分数据一部分是数据流的数据,另一部分是operator的状态数据。对应的快照机制的实现有主要两个部分组成,一个是屏障(Barrier),一个是状态(State)。因为Flink这里处理的数据流,数据在多个operator的DAG拓扑中持续流动,要想实现某个时刻快照可以用于系统故障恢复,必须保证这个快照,完全能够确定某一个时刻状态,这个时刻之前的数据全部处理完,之后的数据原创 2020-07-17 08:40:12 · 3003 阅读 · 1 评论 -
Flink的 StateBackends 状态后端
当使用checkpoint时,状态(state)会被持久化到checkpoint上,以防止数据的丢失并确保发生故障时能够完全恢复。状态是通过什么方式在哪里持久化,取决于使用的状态后端。可用的状态后端MemoryStateBackend FsStateBackend FsStateBackend注意:如果什么都不配置,系统默认的是MemoryStateBackendMemoryStateBackendMemoryStateBackend 是将状态维护在 Java 堆上的一个内部状态后原创 2020-07-17 08:40:29 · 602 阅读 · 1 评论 -
Flink assignAscendingTimestamps 重载方法
先简单介绍一下Timestamp 和Watermark 的概念:1. Timestamp和Watermark都是基于事件的时间字段生成的2. Timestamp和Watermark是两个不同的东西,并且一旦生成都跟事件数据没有关系了(所有即使事件中不再包含生成Timestamp和Watermark的字段也没关系)3. 事件数据和 Timestamp 一一对应(事件在流中传递以StreamRecord对象表示,value 和 timestamp 是它的两个成员变量)4. Watermark 在.原创 2020-07-15 11:54:37 · 1722 阅读 · 0 评论 -
Flink Time和Watermark的理解
Flink Time和Watermark的理解1. Time背景在实际开发过程中,我们可能需要接入各种流数据源,比如在线业务用户点击流数据、监控系实时收集到的事件流数据、从传感器采集到的实时数据,等等,为了处理方便他们可能会写入Kafka消息中间件集群中某个/某些topic中,或者选择其它的缓冲/存储系统。这些数据源中数据元素具有固定的时间属性,是在流数据处理系统之外的其它系统生成的。比如,上亿用户通过手机终端操作触发生成的事件数据,都具有对应的事件时间;再特殊一点,可能我们希望回放(Repla原创 2020-07-15 11:03:59 · 426 阅读 · 0 评论 -
flink问答
Flink学习问题和答案概念和基础篇1. 简单介绍一下FlinkFlink核心是一个流式的数据流执行引擎,其针对数据流的分布式计算提供了数据分布、数据通信以及容错机制等功能。基于流执行引擎,Flink提供了诸多更高抽象层的API以便用户编写分布式任务:DataSet API, 对静态数据进行批处理操作,将静态数据抽象成分布式的数据集,用户可以方便地使用Flink提供的各种操作符对分布式数据集进行处理,支持Java、Scala和Python。DataStream API,对数据流进行流处.原创 2020-07-14 21:48:31 · 364 阅读 · 0 评论 -
flink does not exist or the user running Flink (‘hadoop‘) has insufficient permissions to access it.
Caused by: java.lang.RuntimeException: org.apache.flink.runtime.client.JobExecutionException: Could not set up JobManager at org.apache.flink.util.function.CheckedSupplier.lambda$unchecked$0(CheckedSupplier.java:36) at java.util.concurrent.Completa...原创 2020-07-13 18:29:08 · 2831 阅读 · 2 评论 -
Flink on Yarn的两种模式
Flink on Yarn模式部署始末:Flink的Standalone和on Yarn模式都属于集群运行模式,但是有很大的不同,在实际环境中,使用Flink on Yarn模式者居多。 那么使用on yarn模式到底好在哪呢? 首先,在集群运行时,可能会有很多的集群实例包括MapReduce、Spark、Flink等等,那么如果它们全基于on Yarn就可以完成资源分配,减少单个实例集群的维护,提高集群的利用率。 Flink o...原创 2020-07-12 18:03:18 · 11343 阅读 · 1 评论 -
Flink1.7.2 HA模式安装(Standalone和Yarn)
Flink HA模式安装(Standalone和Yarn)flink是一个大数据开发人员必须会的组件,现在无论大小公司都在搞,所以安装是第一步。0.安装Java1.8的环境(不赘述)1.下载安装包下载官网:https://flink.apache.org/downloads.html也可以直接下面点击下面链接下载:http://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.7.2/flink-1.7.2-bin-scala_2.12.tg原创 2020-07-11 22:48:30 · 390 阅读 · 0 评论 -
Flink VS Spark 部署模式对比
主要对Flink和Spark集群的standalone模式及on yarn模式进行分析对比。Flink与Spark的应用调度和执行的核心区别是Flink不同的job在执行时,其task同时运行在同一个进程TaskManager进程中;Spark的不同job的task执行时,会启动不同的executor来调度执行,job之间是隔离的。Standalone模式Flink 和Spark均支持standalone模式(不依赖其他集群资源管理和调度)的部署,启动自身的Master/Slave架构的集群管.原创 2020-06-23 09:04:08 · 602 阅读 · 0 评论 -
Flink 实时统计热门商品的TopN
文章目录一、需求说明1、以案例驱动理解二、技术点三、代码实现(一)1、调用底层的Process(可做类似map的操作),将Json字符串解析成MyBehavior对象2、提取EventTime,转换成Timestamp格式,生成WaterMark3、按照指定事件分组4、把分好组的数据,划分窗口:假设窗口总长10分钟, 步长1分钟滑动一次5、窗口内的数据进...原创 2020-06-14 12:17:01 · 1754 阅读 · 0 评论 -
flink 一个节点TaskManagers启动失败
去当前节点查看Log日志:Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c6600000, 966787072, 0) failed; error='Cannot allocate memory' (errno=12)## There is insufficient memory for the Java Runtime Environment to continue.# Native .原创 2020-05-15 22:17:21 · 2323 阅读 · 0 评论 -
《flink基础教程》笔记
第一章:为何选择flink1.2 流处理应用:对数据进行高吞吐、低延迟和准确的处理,比如银行的24小时金融服务,需要及时检测出用户行为异常的应用程序;电信行业,如果不能很好地处理流数据,就不能在某个移动通信基站出现流量高峰前预先将流量分配给其他基站。除了低延迟和高吞吐,流处理框架还应该有效的处理异常中断,以及对外预警。1.3 流处理技术演变Storm(先锋)很难实现高吞吐。【P1...原创 2019-10-20 20:52:48 · 278 阅读 · 0 评论 -
Flink:DataStream Connectors 之 Kafka
本文主要介绍 Kafka 在 Apache Flink 中的使用,以一个简单的示例,向大家介绍在 Apache Flink 中如何使用 Kafka。版本:kafka_2.11-2.1.0.tgz创建 TopicKafka 是消息订阅系统,首先创建可以被订阅的 Topic,我们创建一个名为 flink-tipic 的Topic,在一个新的 terminal 中,执行如下命令:...原创 2019-06-18 22:46:20 · 543 阅读 · 0 评论 -
Flink核心技术
Flink项目是大数据处理领域最近冉冉升起的一颗新星,其不同于其他大数据项目的诸多特性吸引了越来越多的人关注Flink项目。本文将深入分析Flink一些关键的技术与特性,希望能够帮助读者对Flink有更加深入的了解,对其他大数据系统的开发者也能有所裨益。Flink简介Flink的核心是一个流式的数据流执行引擎,其针对数据流的分布式计算提供了数据分布,数据通信以及容错机制等功能。基于流执行引...原创 2019-06-20 09:21:19 · 557 阅读 · 0 评论 -
Flink架构及其工作原理
System Architecture分布式系统需要解决:分配和管理在集群的计算资源、处理配合、持久和可访问的数据存储、失败恢复。Fink专注分布式流处理。Components of a Flink SetupJobManager :接受application,包含StreamGraph(DAG)、JobGraph(logical dataflow graph,已经进过优化,如task...原创 2019-06-21 09:58:27 · 699 阅读 · 0 评论 -
Flink 中几种 Time 详解
前言Flink 在流程序中支持不同的Time概念,就比如有 Processing Time、Event Time 和 Ingestion Time。下面我们一起来看看这几个 Time:Processing TimeProcessing Time 是指事件被处理时机器的系统时间。当流程序在 Processing Time 上运行时,所有基于时间的操作(如时间窗口)将使用当时机...转载 2019-07-04 23:19:28 · 2099 阅读 · 0 评论 -
流式大处理的三种框架对比:Storm,Spark和Flink
storm、spark streaming、flink都是开源的分布式系统,具有低延迟、可扩展和容错性诸多优点,允许你在运行数据流代码时,将任务分配到一系列具有容错能力的计算机上并行运行,都提供了简单的API来简化底层实现的复杂程度。Apache Storm在Storm中,先要设计一个用于实时计算的图状结构,我们称之为拓扑(topology)。这个拓扑将会被提交给集群,由集群中的主控节点(...原创 2019-09-01 23:42:24 · 507 阅读 · 0 评论 -
Flink中的的Transformation算子及实例
MapDataStream→DataStream:输入一个参数产生一个参数。val env = StreamExecutionEnvironment.getExecutionEnvironmentval stream = env.generateSequence(1,10)val streamMap = stream.map { x => x * 2 }streamFi...原创 2019-06-18 22:33:29 · 1767 阅读 · 0 评论