
flink
文章平均质量分 83
zxfBdd
这个作者很懒,什么都没留下…
展开
-
Apache Flink on K8s:四种运行模式,我该选择哪种?
1. 前言Apache Flink 是一个分布式流处理引擎,它提供了丰富且易用的API来处理有状态的流处理应用,并且在支持容错的前提下,高效、大规模的运行此类应用。通过支持事件时间(event-time)、计算状态(state)以及恰好一次(exactly-once)的容错保证,Flink迅速被很多公司采纳,成为了新一代的流计算处理引擎。2020 年 2 月 11 日,社区发布了 Flink 1.10.0 版本, 该版本对性能和稳定性做了很大的提升,同时引入了 native Kubernetes..转载 2021-07-01 20:26:54 · 886 阅读 · 0 评论 -
Flink On K8S终极实现方案
Flink作为新一代的大数据处理引擎,不仅是业内公认的最好的流处理引擎,而且具备机器学习等多种强大计算功能,用户只需根据业务逻辑开发一套代码,无论是全量数据还是增量数据,亦或者实时处理,一套方案即可全部解决。K8S是业内最流行的容器编排工具,与docker容器技术结合,可以提供比Yarn与Mesos更强大的集群资源管理功能,成为容器云的主要解决方案之一。如果能将两者结合,无疑是双剑合璧,对生产效能有着巨大的提升。本文将介绍目前为止,Flink On K8S的最前沿实现方案。Flink集群架构...转载 2021-07-01 20:23:42 · 1527 阅读 · 0 评论 -
流计算框架 Flink 与 Storm 的性能对比
1. 背景Apache Flink 和 Apache Storm 是当前业界广泛使用的两个分布式实时计算框架。其中Apache Storm(以下简称“Storm”)在美团点评实时计算业务中已有较为成熟的运用(可参考Storm 的可靠性保证测试),有管理平台、常用 API 和相应的文档,大量实时作业基于 Storm 构建。而Apache Flink(以下简称“Flink”)在近期倍受关注,具有高吞吐、低延迟、高可靠和精确计算等特性,对事件窗口有很好的支持,目前在美团点评实时计算业务中也已有一定应...转载 2021-07-01 19:44:22 · 200 阅读 · 0 评论 -
使用flink 中遇到的问题总结
问题一:如何保证数据按照事件时间准确的落到同一个分区;使用watermark自定义分桶规则,参考链接:flink 落 hdfs 数据按照事件事件分区解决方案 :https://developer.aliyun.com/article/719786/** * @Author:wenwei * @Date : 2020/9/8 22:15 * 自定义分桶的规则 * 1:按照什么格式定义文件名,默认为yyyy-MM-dd-HH */@PublicEvolvingpublic cla...转载 2021-04-16 11:11:00 · 962 阅读 · 0 评论 -
Flink乱序数据处理过程解析
流数据流经source,再到operator,由于网络延迟等原因,导致乱序的产生(这里的乱序是指事件产生的时间EventTime和到达处理机制进行处理的顺序不一样),特别是使用kafka的话,多个分区的数据source之后无法保证有序。所以在进行window计算的时候,如果有涉及时间的,比如(前一小时的访问量),必须要有个机制来保证操作结果的相对准确性。Flink运用一下几个机制来保证事件事件和操作时间的相对一致。1.warterMark在不添加EventTime,只有窗口操作的情...转载 2021-04-08 20:54:34 · 833 阅读 · 0 评论 -
利用Flink消费Kafka数据保证全局有序
Kafka 是现在大数据中流行的消息中间件,其中 kafka 中由 topic 组成,而 topic 下又可以由多个 partition 构成。有时候我们在消费 kafka 中的数据想要保证消费 kafka 中的所有的分区下数据是全局有序的,这种情况下就需要将 topic 下的 partition 的数量设置为一个这样才会保证全局有序,但是这种情况消费数据并没有多并发,也就影响效率。在Flink中则可以即保证消费 kafka 中的数据全局有序,又可以构成多并发,这就是flink中的时...转载 2021-04-08 20:52:17 · 3586 阅读 · 0 评论 -
一文搞懂 Flink window 元素的顺序问题
1. 起因在我们使用 evictor 算子的时候,官网有这样的一句话:Flink provides no guarantees about the order of the elements within a window. This implies that although an evictor may remove elements from the beginning of the window, these are not necessarily the ones that ...转载 2021-04-08 20:51:24 · 492 阅读 · 0 评论 -
Flink算子使用方法及实例演示:keyBy、reduce和aggregations
Flink的Transformation转换主要包括四种:单数据流基本转换、基于Key的分组转换、多数据流转换和数据重分布转换。本文主要介绍基于Key的分组转换,关于时间和窗口将在后续文章中介绍。读者可以使用Flink Scala Shell或者Intellij Idea来进行练习:Flink Scala Shell使用教程Intellij Idea开发环境搭建教程Flink单数据流基本转换:map、filter flatMap数据类型的转化对数据分组主要是为了进行后续的聚合操作,即对同.转载 2021-03-27 13:35:25 · 1069 阅读 · 0 评论 -
Flink面试常见问题(实战)
一、如何排查生产环境中的反压问题?1、反压出现的场景反压经常出现在促销、热门活动等场景。短时间内流量陡增造成数据的堆积或者消费速度变慢。它们有一个共同的特点:数据的消费速度小于数据的生产速度。2、反压监控方法通过Flink Web UI发现反压问题Flink 的 TaskManager 会每隔 50 ms 触发一次反压状态监测,共监测 100 次,并将计算结果反馈给 JobManager,最后由 JobManager 进行计算反压的比例,然后进行展示。这个比例展示逻辑如下:...转载 2021-03-24 18:36:22 · 287 阅读 · 0 评论 -
大数据/数仓面试灵魂30问
1.什么是数据仓库?如何构建数据仓库?(如果这个问题回答的好,后面很多问题都不需要再问)2.如何建设数据中台?可简单说下理解与思路3.数据仓库、数据中台、数据湖的理解4.传统数仓的程度(建模工具、ETL工具、BI报表工具、调度系统)5.传统数仓和大数据数仓的异同?有哪些大的变化?6.印象最深刻的项目?为什么?亮点与优势?7.数仓最重要的是什么?8.实时数仓做过吗?采用什么架构?lambda有哪些优缺点?9.如何看待kappa架构?iota架构呢?10.责任心?沟通能...转载 2021-03-24 18:27:56 · 349 阅读 · 0 评论 -
数据仓库ods层是啥意思_一文读懂大数据仓库建设
文章标签: 数据仓库ods层是啥意思版权从传统数仓到大数据平台,MPP数据集市,Hadoop集群,还有混合架构数仓,一直在不断演进,但是万变不离其宗,大框架和方法论终归是那一套。所以本文就来分享数仓建设的方法论,文中针对的例子是大数据环境下的数据仓库建设,从目前互联网行业数据的采集,存储,同步以及任务调度与监控方面阐述了相关技术,还专门针对数据仓库的维度建模技术做了详细的介绍。 先从大数据数据仓库建设的整体架构说起。 下图是数据仓库的逻辑分层架构:想看懂数据仓库的逻辑分层架构,必须先弄懂以..转载 2021-03-24 18:26:22 · 3351 阅读 · 0 评论 -
Flink面试常见问题(实战)
一、如何排查生产环境中的反压问题?1、反压出现的场景反压经常出现在促销、热门活动等场景。短时间内流量陡增造成数据的堆积或者消费速度变慢。它们有一个共同的特点:数据的消费速度小于数据的生产速度。2、反压监控方法通过Flink Web UI发现反压问题Flink 的 TaskManager 会每隔 50 ms 触发一次反压状态监测,共监测 100 次,并将计算结果反馈给 JobManager,最后由 JobManager 进行计算反压的比例,然后进行展示。这个比例展示逻辑如下:...转载 2021-03-24 15:45:57 · 740 阅读 · 0 评论 -
Flink SQL中可撤回机制解密
场景案例先从一个实际业务场景理解Flink SQL中的撤回机制:设备状态上线/下线数量统计,上游采集设备状态发送到Kafka中,最开始是一个上线状态,此时统计到上线数量+1,过了一段时间该设备下线了,收到的下线的状态,那么此时应该是上线数量-1,下线数量+1,现在需要实现这样一个需求,看一下在Flink SQL里面如何实现 val env=StreamExecutionEnvironment.getExecutionEnvironment val tabEnv=TableEnvir...转载 2021-03-24 15:32:27 · 648 阅读 · 0 评论 -
FlinkSQL中的回退更新-Retraction
公众号《大数据技术与架构》,大数据领域高级进阶已关注5 人赞同了该文章前言如果你在使用FlinkSQL时出现如下的报错:Table is not an append-only table. Use the toRetractStream() in order to handle add and retract messages.那么你就有必要了解一下Flink中的回退更新。简介通俗的讲"回退更新"就是传统数据里面的更新操作,也就是说Retract是流式计算场景下对数据更新的处理。...转载 2021-03-24 15:10:00 · 788 阅读 · 0 评论 -
深入分析Flink的operator chain(算子链)机制
前言这篇是昨晚没写完的,今晚补全发出来。Flink算子链简介“为什么我的Flink作业Web UI中只显示出了一个框,并且Records Sent和Records Received指标都是0?是我的程序写得有问题吗?”笔者在Flink社区群里经常能看到类似这样的疑问。这种情况几乎都不是程序有问题,而是因为Flink的operator chain——即算子链机制导致的,即提交的作业的执行计划中,所有算子的并发实例(即sub-task)都因为满足特定条件而串成了整体来执行,自然就观察不...转载 2021-03-17 20:49:42 · 603 阅读 · 0 评论 -
Flink 面试通关手册
概述2019 年是大数据实时计算领域最不平凡的一年,2019 年 1 月阿里巴巴 Blink (内部的 Flink 分支版本)开源,大数据领域一夜间从 Spark 独步天下走向了两强争霸的时代。Flink 因为其天然的流式计算特性以及强大的处理性能成为炙手可热的大数据处理框架。时至今日,Flink 已经发展到 1.9 版本,在大数据开发领域,面试中对于 Flink 的考察已经是大数据开发求职者必须面对的,本文结合自己作为面试官过程中的经验详细总结了近 50 个关于 Flink 的面试考察点...转载 2021-03-17 17:08:36 · 175 阅读 · 0 评论 -
批流统一计算引擎的动力源泉—Flink Shuffle机制的重构与优化
一. 概述本文讲述的shuffle概念范围如下图虚线框所示,从上游算子产出数据到下游算子消费数据的全部流程,基本可以划分成三个子模块: 上游写数据:算子产出的record序列化成buffer数据结构插入到sub partition队列; 网络传输:上下游可能调度部署到不同的container中,上游的数据需要经过网络传输到下游,涉及到数据拷贝和编解码流程; 下游读数据:从网络上接收到的buffer反序列化成record给op处理。 当job被调度开始运...转载 2021-03-17 13:36:47 · 510 阅读 · 0 评论 -
RedisCluster-Pipeline操作,提升10倍以上响应速度2021-03-15
文章目录什么是pipeLine 为什么使用pipeLine ?为什么RedisCluster无法使用pipeline?如何基于JedisCluster扩展pipeline?性能对比(提升10倍以上):本文中的代码来自我正在写的分布式缓存框架(主要解决缓存使用中的各种痛点:缓存穿透\redis-cluster pipeline\注解使用等等)。后续内部推广使用后、成熟后会开源回馈大家。什么是pipeLine 为什么使用pipeLine ?管道(pipeline)将客户端 client 与服务.转载 2021-03-15 19:06:38 · 1040 阅读 · 2 评论 -
改造JedisCluster使其支持pipeline操作
Redis 管道技术Redis 管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。管道技术的优势管道技术最显著的优势是提高了 redis 服务的性能。redis本身性能是很高的,单个redis命令的执行时间很短,大量的redis操作,网络IO的耗时非常大,而redis管道技术大大的减少了程序和redis的交互 次数,性能提升非常明显。管道的使用----Jedispublic class PipelineTest { public sta...转载 2021-03-15 19:04:26 · 484 阅读 · 0 评论 -
Flink写入Redis的两种方式
1、使用flink提供的RedisSink(1)添加maven依赖<dependency> <groupId>org.apache.bahir</groupId> <artifactId>flink-connector-redis_2.11</artifactId> <version>1.1-SNAPSHOT</version></dependency>(2)实现一个redisMap...转载 2021-03-15 19:02:49 · 3306 阅读 · 0 评论 -
flink写入redis
使用 Flink Redis Connector支持三种Redis连接方式Single Redis ServerRedis ClusterRedis Sentinel源码:https://github.com/apache/bahir-flink添加依赖:<dependency> <groupId>org.apache.bahir</groupId> <artifactId>flink-connector-redis_2.11&l...转载 2021-03-15 19:01:20 · 393 阅读 · 0 评论 -
flink写入redis(续)
参照源码:https://github.com/apache/bahir-flink/tree/master/flink-connector-redis先分析,后修改。flink-connector-redis代码目录:着重看RedisSink类:1. 包含如下几个私有对象:private String additionalKey;private Integer additionalTTL;private RedisMapper<IN> redisSinkMapp..转载 2021-03-15 18:59:56 · 701 阅读 · 0 评论 -
Flink程序经过reduce聚合后不输出sink的问题
Flink程序经过reduce聚合后不输出sink的问题一、最近提交的一版flink流式计算程序,经过EventTimeSessionWindows后进行了reduce聚合,完成计算完成后迟迟不sink输出结果。记录下踩过的坑程序很简单,直接上代码:StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();env.setParallelism(5);env.setStreamTim.转载 2021-03-15 11:46:47 · 1211 阅读 · 0 评论 -
速度收藏!看完这份知识图谱,才算搞懂 Flink!
先跟大家分享一个好消息!即日起,Apache Flink 社区微信公众号 Ververica 正式更名为 Flink 中文社区 并由 Apache Flink PMC 成员进行维护,是国内唯一的 Flink 社区官方微信公众号,详细信息请见次条「声明」。在去年的一年中,Flink 中文社区共发布文章 144 篇,通过提供 Flink 技术原理剖析、上手实操、多场景下的最佳实践以及社区的最新资讯等帮助大家更好的理解、使用 Flink。同时,我们也发现当前社区除文章、直播教程、Meetup 外...转载 2021-01-12 20:50:28 · 372 阅读 · 0 评论 -
数仓系列 | 深入解读 Flink 资源管理机制
摘要:本文根据 Apache Flink 系列直播整理而成,由阿里巴巴高级开发工程师宋辛童分享。文章主要从基本概念、当前机制与策略、未来发展方向等三个方面帮助开发者深入理解 Flink 的资源管理机制。 基本概念 当前机制与策略 未来发展方向 Tips:点击「阅读原文」可查看更多Flink 社区最新动态~1. 基本概念1.1 相关组件我们今天介绍的主要是与 Flink 资源管理相关的组件,我们知道一个 Flink Clu...转载 2021-01-12 17:11:13 · 140 阅读 · 0 评论 -
【实时数仓篇】(03)菜鸟物流利用 Flink 实现实时超时统计场景
文章目录 一、前言 二、实时数仓基本架构 三、难题:实时超时统计 四、解决方案 一、前言在小破站看了晨蕊关于Flink的分享视频https://www.bilibili.com/video/BV1TE411L7zV/?spm_id_from=333.788.videocard.4,这篇博客主要对这次分享的一些知识点做些整理。看大佬,人美技术牛! ( •̀ ω •́ )✧二、实时数仓基本架构以下是菜鸟作为物流扛把子,它对于数据的需求,主要有以下四点:...转载 2020-12-30 14:04:36 · 507 阅读 · 0 评论 -
基于 Flink 的典型 ETL 场景实现方案
作者:买蓉 · 美团点评高级技术专家整理:赵阳(Flink 社区志愿者)校对:苗浩冲(Flink 社区志愿者)本文将从数仓诞生的背景、数仓架构、离线与实时数仓的对比着手,综述数仓发展演进,然后分享基于 Flink 实现典型 ETL 场景的几个方案。1.实时数仓的相关概述1.1 实时数仓产生背景我们先来回顾一下数据仓库的概念。数据仓库的概念是于 90 年代由 Bill Inmon 提出, 当时的背景是传统的 OLTP 数据库无法很好的支持长...转载 2020-12-29 16:00:10 · 317 阅读 · 0 评论 -
Flink1.11中的CDC Connectors操作实践
Flink1.11引入了CDC的connector,通过这种方式可以很方便地捕获变化的数据,大大简化了数据处理的流程。Flink1.11的CDC connector主要包括:MySQL CDC和Postgres CDC,同时对Kafka的Connector支持canal-json和debezium-json以及changelog-json的format。本文主要分享以下内容: CDC简介 Flink提供的 table format 使用过程中的注意点 mysql-c...转载 2020-12-18 14:05:10 · 757 阅读 · 0 评论 -
Flink JDBC Connector:Flink 与数据库集成最佳实践
原创徐榜江(雪尽)Flink 中文社区9月29日整理:陈政羽(Flink 社区志愿者)摘要:Flink 1.11 引入了 CDC,在此基础上, JDBC Connector 也发生比较大的变化,本文由Apache Flink Contributor,阿里巴巴高级开发工程师徐榜江(雪尽)分享,主要介绍 Flink 1.11 JDBC Connector 的最佳实践。大纲如下: JDBC connector JDBC Catalog JDBC Dial...转载 2020-12-16 18:00:30 · 1140 阅读 · 0 评论 -
基于 Flink SQL CDC的实时数据同步方案
Flink 1.11 引入了 Flink SQL CDC,CDC 能给我们数据和业务间能带来什么变化?本文由 Apache Flink PMC,阿里巴巴技术专家伍翀 (云邪)分享,内容将从传统的数据同步方案,基于 Flink CDC 同步的解决方案以及更多的应用场景和 CDC 未来开发规划等方面进行介绍和演示。传统数据同步方案 基于 Flink SQL CDC 的数据同步方案(Demo) Flink SQL CDC 的更多应用场景 Flink SQL CDC 的未来规划直播回顾:ht...转载 2020-12-15 17:53:57 · 1017 阅读 · 0 评论 -
深入解读flink sql cdc的使用以及源码分析
前言 flink消费cdc数据 canal format debezium format CanalJson反序列化源码解析 flink cdc connector 背景 mysql-cdc mysql-cdc connector源码解析 changelog format 使用场景 示例 源码浅析 前言CDC,Chan...转载 2020-12-15 17:21:19 · 2153 阅读 · 0 评论 -
技本功丨用短平快的方式告诉你:Flink-SQL的扩展实现
2019年1月28日,阿里云宣布开源“计算王牌”实时计算平台Blink回馈给ApacheFlink社区。官方称,计算延迟已经降到毫秒级,也就是你在浏览网页的时候,眨了一下眼睛,淘宝、天猫处理的信息已经刷新了17亿次。作为一家对技术有追求、有渴望的公司,怎么少得了为Flink社区做些贡献呢?夫子说首先,本文所述均基于flink 1.5.4。我们为什么扩展Flink-SQL?由于Flink 本身SQL语法并不提供在对接输入源和输出目的的SQL语法。数据开发在使用的过程中需要根...转载 2020-09-08 17:54:22 · 177 阅读 · 0 评论 -
Flink1.10升级1.11报No ExecutorFactory found to execute the application
在flink1.10升级1.11时遇到了No ExecutorFactory found to execute the application错误:经过搜索,在Flink中文邮件列表里找到答案。根据链接在Flink的Release Note中找到从Flink1.11开始,移除了flink-streaming-java对flink-clients的依赖,所以加上这个依赖就好了。...转载 2020-09-08 10:49:20 · 597 阅读 · 0 评论 -
flink 本机运行指定用户
好久没写东西了 ~~~代码中加个参数就行了System.setProperty("HADOOP_USER_NAME", "hadoop")转载 2020-09-07 11:22:08 · 1157 阅读 · 0 评论 -
Apache Flink任意Jar包上传导致远程代码执行漏洞复现
0x00 简介Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。0x01 Flink应用场景优化电子商务的实时搜索结果:阿里巴巴的所有基础设施团队使用flink实时更新产品细节和库存信息,为用户提供更高的关联性。针对数据分析团队提供实时流处理服务:flink通过flink-powered数据分析平台提供...转载 2020-09-03 17:52:48 · 706 阅读 · 0 评论 -
调试Local模式下带状态的Flink任务
调试Local模式下带状态的Flink任务Flink版本: 1.8.0Scala版本: 2.11Github地址:https://github.com/shirukai/flink-examples-debug-state.git在本地开发带状态的Flink任务时,经常会遇到这样的问题,需要验证状态是否生效?以及重启应用之后,状态里的数据能否从checkpoint的恢复?首先要明确的是,Flink重启时不会自动加载状态,需要我们手动指定checkpoint路径。笔者从Spark的St...转载 2020-09-03 14:42:47 · 1788 阅读 · 0 评论 -
Flink 实时计算 - SQL 任务用户自定义 Jar 使用
我是Lake,专注大数据技术、程序员经验、互联网科技见解分享,如果你觉得这篇文章对你有帮助的话,欢迎你点赞转发或者关注我,你的一个小小的鼓励,就是我前进的最大动力。最近在做 Flink SQL 任务方面的开发,有这样一种情况,用户自己上传自定义的 UDF Jar 包,这里你可以理解为是用户自己定义的函数 Jar 包,然后在写的 Flink SQL 任务的时候,需要能够用到 Jar 包中定义的 UDF。最开始想的是将 UDF Jar 包放到 HDFS 上面,每次用的时候,下载下来,直接配置一下 ...转载 2020-09-02 18:08:06 · 874 阅读 · 0 评论 -
Flink 容错性机制- 屏障(barrier)实现原理
我们知道Flink提供了容错机制,能够在应用失败的时候重新恢复任务。这个机制主要就是通过持续产生快照的方式实现的。Flink快照主要包括两部分数据一部分是数据流的数据,另一部分是operator的状态数据。对应的快照机制的实现有主要两个部分组成,一个是屏障(Barrier),一个是状态(State)。因为Flink这里处理的数据流,数据在多个operator的DAG拓扑中持续流动,要想实现某个时刻快照可以用于系统故障恢复,必须保证这个快照,完全能够确定某一个时刻状态,这个时刻之前的数据全部处理完...转载 2020-08-08 11:08:35 · 1244 阅读 · 1 评论 -
Flink 本地运行日志配置
方法一: 使用 log4j.properties 在 src/main/resources 中添加 log4j.properties 文件 ################################################################################# Licensed to the Apache Software Foundation (ASF) under one# or more contributor license ag...转载 2020-08-04 14:02:55 · 1168 阅读 · 0 评论 -
Flink Application打印业务日志
背景flink默认会把所有日志打印到taskexecutor的日志,日志混杂在一起很难排查,并且会越来越大可以通过的以下的方式分割离职并做Rolling添加依赖jar包https://mirrors.koehn.com/apache/logging/log4j/extras/1.2.17/apache-log4j-extras-1.2.17-bin.zip下载并copy apache-log4j-extras-1.2.17.jar 包到flink/lib目录下增加l...转载 2020-08-04 14:01:31 · 2836 阅读 · 3 评论