290 天前 / 张逸
都说“过早进行性能优化是万恶之源”,我宁肯相信这是为了“矫枉过正”而出此惊人之语,更何况,现在的 IT 时代已与 Donald Knuth 的时代已有很大差异了。重点还是在于“过早”这个词,之所以 Knuth 告诫我们不要过早进行性能优化,原因在于: 判断性能是否存在问题,不能太早太早做性能优化,有可能并没有弄清楚性能瓶颈在哪里图为 Donald Knuth 在斯坦福大学计算机科学 William Gates 大楼的办公室 最近,我的团队成员正在着力于提高实时流处理任务的性能。
296 天前 / sjf0115
摘要:本文整理自爱奇艺技术经理韩红根在 5 月 22 日北京站 Flink Meetup 分享的议题《Flink 在爱奇艺广告业务的实践》,内容包括: 业务场景业务实践 Flink 使用过程中的问题及解决未来规划 Tips:点击「阅读原文」报名参加 8.7 深圳站 Meetup~ GitHub 地址 欢迎大家给Flink点赞送 star~ 一、业务场景 实时数据在广告业务的使用场景主要可以分为四个方面: 数据大屏:包括曝光、点击、收入等核心指标的展示,以及故障率等监控指标; 异常监测:因为广告投放的链路比较,所以如果链路上发生任何波动的话,都会对整体的投放效果产生影响。
303 天前 / 尹千觞
简介本篇文章,首先会向大家阐述什么是 Flink connector 和 CDC , 然后会通过手把手的方式和大家一起构建一个简单的 GBase8s 的 Flink connector,并完成实践项目,即通过 Mysql CDC 实时通过 connector 同步数据到 GBase8s 中。 什么是 Flink connectorFlink 内置了一些基本数据源和接收器,这些数据源和接收器始终可用。该预定义的数据源包括文件、Mysql、RabbitMq、Kafka、ES 等,同时也支持数据输出到文件、Mysql、RabbitMq、Kafka、ES 等。
304 天前 / sjf0115
Apache Flink 是一个有状态的流处理框架。什么是流处理应用程序的状态呢?你可以理解状态为应用程序算子中的内存。状态在流计算很多复杂场景中非常重要,比如: 保存所有历史记录,用来寻找某种事件模式 保存最近一分钟的所有记录,对每分钟的记录进行聚合统计 保存当前的模型参数,用于进行模型训练 但是,有状态的流处理仅在状态可以容错的情况下才建议在生产环境中使用。这里的容错是指即使出现软件或机器故障,计算的最终结果也是准确的,不会出现丢失数据或重复计算的情况。
310 天前 / 张逸
在我们的数据平台产品中,为了简化开发,对 Flink 做了一层封装,定义了 Job 和 Flow 的抽象。一个 Job 其实就是 Flink 的一个作业,每个 Job 可以定义多个 Flow,一个 Flow 可以理解为是 Flink 的一个 DataStream,利用 Job 传递的 StreamExecutionEnvironment 可以在 Flow 中添加包括 Source 与 Sink 的多个算子。 Job 与 Flow 之间的关系可以利用自定义的 @JobFlow 注解进行配置,如此就可以在执行抽象的 AbstractJob 的 run()方法时,利用反射获得该 Job 下的所有 Flow,遍历执行每个 Flow 的 run()方法。
312 天前 / sjf0115
Flink 1.11 Apache Flink 1.11 对 JobManagers 的内存模型和配置选项进行了重大调整。这些最近引入的调整能使 Flink 更加适应各种部署环境(例如 Kubernetes、Yarn、Mesos),并对内存消耗提供严格的控制。上一篇博文重点介绍了 TaskManager 的内存模型以及它在 Flink 1.10 中的改进。这篇文章讨论了相同的主题,但对象变成了 JobManager。Flink 1.11 统一了 Flink 进程内存模型。JobManager 新引入的内存模型与 TaskManager 的类似,不过 JobManager 的更简单,组件也更少。
313 天前 / hivefans东杰
摘要:本文整理自戴尔科技集团软件工程师周煜敏在 Flink Forward Asia 2020 分享的议题《Pravega Flink Connector 的过去、现在和未来》,文章内容为: Pravega 以及 Pravega connector 简介 Pravega connector 的过去回顾 Flink 1.11 高阶特性心得分享未来展望 Pravega 创客大赛介绍 Tips:点击「阅读原文」即可查看原文视频~文末扫码关注 Pravega 创客大赛 GitHub 地址 欢迎大家给Flink点赞送 star~ 一、Pravega 以及 Pravega connector 简介 Pravega 项目的名字来源于梵语,意思是 good speed。
317 天前 / 数栈DTinsightu580540
平台建设背景 传统离线数据开发时效性较差,无法满足快速迭代的互联网需求。伴随着以 Flink 为代表的实时技术的飞速发展,实时计算越来越多的被企业使用,但是在使用中下面提到的各种问题也随之而来。开发者使用门槛高、产出的业务数据质量没有保障、企业缺少统一平台管理难以维护等。在诸多不利因素的影响下,我们决定利用现有的 Flink 技术构建一套完整的实时计算平台。 平台总体架构 从总体架构来看,实时计算平台大体可以分为三层,计算平台、调度平台、资源平台。
321 天前 / hivefans东杰
摘要:本文整理自 Dell 科技集团高级软件研发经理孙伟在 4 月 17 日 上海站 Flink Meetup 分享的《Iceberg 和对象存储构建数据湖方案》。内容包括: 数据湖和 Iceberg 简介 未来规划 演示方案存储优化的一些思考 Tips:点击文末「阅读原文」即可查看更多技术干货~ GitHub 地址 欢迎大家给Flink点赞送 star~ 一、数据湖和 Iceberg 简介 1. 数据湖生态 如上图所示,对于一个成熟的数据湖生态而言: 首先我们认为它底下应具备海量存储的能力,常见的有对象存储,公有云存储以及 HDFS; 在这之上,也需要支持丰富的数据类型,包括非结构化的图像视频...
326 天前 / sjf0115
Flink 版本 1.13.0 Flink 从 1.5.0 版本开始引入了一种新的状态,称为广播状态。在这篇文章中,我们会解释什么是广播状态以及展示一个示例来说明如何使用广播状态。 1. 什么是广播状态?广播状态可以以某种方式组合处理两个事件流。第一个流的事件被广播到算子所有并行实例上,并存储在状态中。另一个流的事件不会被广播,但是会被发送到同一算子的各个实例上,并与广播流的事件一起处理。这种新的广播状态非常适合低吞吐量和高吞吐量流 Join 或需要动态更新处理逻辑的应用程序。我们将使用一个具体示例来演示如何使用广播状态,并展示具体的 API。
332 天前 / 逗逗
进入主页,点击右上角“设为星标” 比别人更快接收好文章 1. Flink 的容错机制(checkpoint)Checkpoint 容错机制是 Flink 可靠性的基石,可以保证 Flink 集群在某个算子因为某些原因 ( 如 异常退出)出现故障时,能够将整个应用流图的状态恢复到故障之前的某一状态,保证应用流图状态的一致性。Flink 的 Checkpoint 机制原理来自“Chandy-Lamport algorithm”算法。 每个需要 Checkpoint 的应用在启动时,Flink 的 JobManager 为其创建一个 CheckpointCoordinator( 检查点协调器),CheckpointCoordinator 全权负责本应用的快照制作。
337 天前 / sjf0115
摘要:本文由社区志愿者陈政羽整理,Apache Flink 社区在 5 月份发布了 1.13 版本,带来了很多新的变化。文章整理自徐榜江 ( 雪尽)5 月 22 日在北京的 Flink Meetup 分享的《深入解读 Flink SQL 1.13》,内容包括: Flink SQL 1.13 概览核心 feature 解读重要改进解读 FlinkSQL 1.14未来规划 总结 Tips:点击文末「阅读原文」即可查看更多技术干货~ GitHub 地址 https://github.com/apache/flink 欢迎大家给Flink点赞送 star~ 一、Flink SQL 1.13 概览 Flink 1.13 是一个社区大版本,解决的 issue 在 1000 个以上,通过上图我们可以看到...
337 天前 / 尹千觞
挖了很久的 CDC 坑,今天打算填一填了。本文我们首先来介绍什么是 CDC,以及 CDC 工具选型,接下来我们来介绍如何通过 Flink CDC 抓取 mysql 中的数据,并把他汇入 Clickhouse 里,最后我们还将介绍 Flink SQL CDC 的方式。 CDC 首先什么是 CDC ?它是 Change Data Capture 的缩写,即变更数据捕捉的简称,使用 CDC 我们可以从数据库中获取已提交的更改并将这些更改发送到下游,供下游使用。这些变更可以包括 INSERT,DELETE,UPDATE 等操作。
341 天前 / sjf0115
摘要:阿里巴巴技术专家胡争在 4 月 17 日上海站 Meetup 分享,文章内容为借助 Flink 和 Iceberg 来尝试解决数据入湖的相关挑战,帮助业务同学更加高效地聚焦在自身的业务挑战上。内容包括: 数据入湖的核心挑战 Apache Iceberg 介绍 Flink 和 Iceberg 如何解决问题 社区 Roadmap Tips:点击文末「阅读原文」即可查看原文视频~ GitHub 地址 https://github.com/apache/flink 欢迎大家给Flink点赞送 star~ 一、数据入湖的核心挑战 数据实时入湖可以分成三个部分,分别是数据源、数据管道和数据湖(数仓),本文的内容将围绕这三部分展开。
347 天前 / sjf0115
本文介绍了在 Flink 中使用定时器的一些基本概念和注意事项。开发人员可以使用 Flink 的 ProcessFunction 算子来注册自己的定时器,该算子可以访问流应用程序的一些基本构建块,例如: 事件(流元素) 状态(容错,一致性,仅在 KeyedStream 上应用) 定时器(事件时间和处理时间,仅在 KeyedStream 上应用) 有关 Flink ProcessFunction 的更多信息,请参考 Flink 如何使用 ProcessFunction。 1. 什么是定时器定时器可以让 Flink 流处理程序对处理时间和事件时间的变化作出反应。