Apache Flink

Apache Flink 进阶(三):Checkpoint 原理解析与应用实践

守給你的承諾、 提交于 2019-11-30 13:19:23
大家好,今天我将跟大家分享一下 Flink 里面的 Checkpoint,共分为四个部分。首先讲一下 Checkpoint 与 state 的关系,然后介绍什么是 state,第三部分介绍如何在 Flink 中使用state,第四部分则介绍 Checkpoint 的执行机制。 Checkpoint 与 state 的关系 Checkpoint 是从 source 触发到下游所有节点完成的一次全局操作。下图可以有一个对 Checkpoint 的直观感受,红框里面可以看到一共触发了 569K 次 Checkpoint,然后全部都成功完成,没有 fail 的。 state 其实就是 Checkpoint 所做的主要持久化备份的主要数据 ,看下图的具体数据统计,其 state 也就 9kb 大小 。 什么是 state 我们接下来看什么是 state。先看一个非常经典的 word count 代码,这段代码会去监控本地的 9000 端口的数据并对网络端口输入进行词频统计,我们本地行动 netcat,然后在终端输入 hello world,执行程序会输出什么? 答案很明显, (hello, 1) 和 (word,1) 那么问题来了,如果再次在终端输入 hello world,程序会输入什么? 答案其实也很明显, (hello, 2) 和 (world, 2) 。为什么 Flink

揭秘 Flink 1.9 新架构,Blink Planner 你会用了吗?

跟風遠走 提交于 2019-11-30 13:18:41
本文为 Apache Flink 新版本重大功能特性解读之 Flink SQL 系列文章的开篇,Flink SQL 系列文章由其核心贡献者们分享,涵盖基础知识、实践、调优、内部实现等各个方面,带你由浅入深地全面了解 Flink SQL。 1. 发展历程 今年的8月22日 Apache Flink 发布了1.9.0 版本(下文简称1.9),在 Flink 1.9 中,Table 模块迎来了核心架构的升级,引入了阿里巴巴Blink团队贡献的诸多功能,本文对Table 模块的架构进行梳理并介绍如何使用 Blink Planner。 Flink 的 Table 模块 包括 Table API 和 SQL,Table API 是一种类SQL的API,通过Table API,用户可以像操作表一样操作数据,非常直观和方便;SQL作为一种声明式语言,有着标准的语法和规范,用户可以不用关心底层实现即可进行数据的处理,非常易于上手,Flink Table API 和 SQL 的实现上有80%左右的代码是公用的。作为一个流批统一的计算引擎,Flink 的 Runtime 层是统一的,但在 Flink 1.9 之前,Flink API 层 一直分为DataStream API 和 DataSet API, Table API & SQL 位于 DataStream API 和 DataSet API 之上

Apache Flink 进阶(三):Checkpoint 原理解析与应用实践

家住魔仙堡 提交于 2019-11-30 12:26:38
大家好,今天我将跟大家分享一下 Flink 里面的 Checkpoint,共分为四个部分。首先讲一下 Checkpoint 与 state 的关系,然后介绍什么是 state,第三部分介绍如何在 Flink 中使用state,第四部分则介绍 Checkpoint 的执行机制。 Checkpoint 与 state 的关系 Checkpoint 是从 source 触发到下游所有节点完成的一次全局操作。下图可以有一个对 Checkpoint 的直观感受,红框里面可以看到一共触发了 569K 次 Checkpoint,然后全部都成功完成,没有 fail 的。 state 其实就是 Checkpoint 所做的主要持久化备份的主要数据 ,看下图的具体数据统计,其 state 也就 9kb 大小 。 什么是 state 我们接下来看什么是 state。先看一个非常经典的 word count 代码,这段代码会去监控本地的 9000 端口的数据并对网络端口输入进行词频统计,我们本地行动 netcat,然后在终端输入 hello world,执行程序会输出什么? 答案很明显, (hello, 1) 和 (word,1) 那么问题来了,如果再次在终端输入 hello world,程序会输入什么? 答案其实也很明显, (hello, 2) 和 (world, 2) 。为什么 Flink

一张图轻松掌握 Flink on YARN 应用启动全流程(上)

时光总嘲笑我的痴心妄想 提交于 2019-11-30 12:24:56
Flink 支持 Standalone 独立部署和 YARN、Kubernetes、Mesos 等集群部署模式,其中 YARN 集群部署模式在国内的应用越来越广泛。Flink 社区将推出 Flink on YARN 应用解读系列文章,分为上、下两篇。本文基于 FLIP-6 重构后的资源调度模型将介绍 Flink on YARN 应用启动全流程,并进行详细步骤解析。下篇将根据社区大群反馈,解答客户端和Flink Cluster的常见问题,分享相关问题的排查思路。 Flink on YARN 流程图 Flink on YARN集群部署模式涉及YARN和Flink两大开源框架,应用启动流程的很多环节交织在一起,为了便于大家理解,在一张图上画出了Flink on YARN基础架构和应用启动全流程,并对关键角色和流程进行了介绍说明,整个启动流程又被划分成客户端提交(流程标注为紫色)、Flink Cluster启动和Job提交运行(流程标注为橙色)两个阶段分别阐述,由于分支和细节太多,本文会忽略掉一些,只介绍关键流程(基于Flink开源1.9版本源码整理)。 客户端提交流程 1.执行命令 :bin/flink run -d -m yarn-cluster ...或bin/yarn-session.sh ...来提交per-job运行模式或session运行模式的应用; 2

Apache Flink 进阶(三):Checkpoint 原理解析与应用实践

二次信任 提交于 2019-11-30 12:24:35
大家好,今天我将跟大家分享一下 Flink 里面的 Checkpoint,共分为四个部分。首先讲一下 Checkpoint 与 state 的关系,然后介绍什么是 state,第三部分介绍如何在 Flink 中使用state,第四部分则介绍 Checkpoint 的执行机制。 Checkpoint 与 state 的关系 Checkpoint 是从 source 触发到下游所有节点完成的一次全局操作。下图可以有一个对 Checkpoint 的直观感受,红框里面可以看到一共触发了 569K 次 Checkpoint,然后全部都成功完成,没有 fail 的。 state 其实就是 Checkpoint 所做的主要持久化备份的主要数据,看下图的具体数据统计,其 state 也就 9kb 大小 。 什么是 state 我们接下来看什么是 state。先看一个非常经典的 word count 代码,这段代码会去监控本地的 9000 端口的数据并对网络端口输入进行词频统计,我们本地行动 netcat,然后在终端输入 hello world,执行程序会输出什么? 答案很明显,(hello, 1) 和 (word,1) 那么问题来了,如果再次在终端输入 hello world,程序会输入什么? 答案其实也很明显,(hello, 2) 和 (world, 2)。为什么 Flink

一张图轻松掌握 Flink on YARN 应用启动全流程(上)

℡╲_俬逩灬. 提交于 2019-11-30 12:22:56
Flink 支持 Standalone 独立部署和 YARN、Kubernetes、Mesos 等集群部署模式,其中 YARN 集群部署模式在国内的应用越来越广泛。Flink 社区将推出 Flink on YARN 应用解读系列文章,分为上、下两篇。本文基于 FLIP-6 重构后的资源调度模型将介绍 Flink on YARN 应用启动全流程,并进行详细步骤解析。下篇将根据社区大群反馈,解答客户端和Flink Cluster的常见问题,分享相关问题的排查思路。 Flink on YARN 流程图 Flink on YARN集群部署模式涉及YARN和Flink两大开源框架,应用启动流程的很多环节交织在一起,为了便于大家理解,在一张图上画出了Flink on YARN基础架构和应用启动全流程,并对关键角色和流程进行了介绍说明,整个启动流程又被划分成客户端提交(流程标注为紫色)、Flink Cluster启动和Job提交运行(流程标注为橙色)两个阶段分别阐述,由于分支和细节太多,本文会忽略掉一些,只介绍关键流程(基于Flink开源1.9版本源码整理)。 客户端提交流程 1.执行命令:bin/flink run -d -m yarn-cluster ...或bin/yarn-session.sh ...来提交per-job运行模式或session运行模式的应用; 2.解析命令参数项并初始化

探寻流式计算

天涯浪子 提交于 2019-11-30 03:56:47
一、静态数据和流数据 静态数据:为了支持决策分析而构建的数据仓库系统,其中存放的大量历史数据就是静态数据。 流数据:以大量、快速、时变的流形式持续到达的数据。(例如:实时产生的日志、用户实时交易信息) 流数据具有以下特点: (1)、数据快速持续到达,潜在大小也许是无穷无尽的。 (2)、数据来源众多,格式复杂。 (3)、数据量大,但是不十分关注存储,一旦经过处理,要么被丢弃,要么被归档存储(存储于数据仓库)。 (4)、注重数据的整体价值,不过分关注个别数据。 (5)、数据顺序颠倒,或者不完整,系统无法控制将要处理的新到达的数据元素的顺序。 在传统的数据处理流程中,总是先收集数据,然后将数据放到DB中。然后对DB中的数据进行处理。 流计算:为了实现数据的时效性,实时消费获取的数据。 二、批量计算和流计算 批量计算:充裕时间处理静态数据,如Hadoop。实时性要求不高。 流计算:实时获取来自不同数据源的海量数据,经过实时分析处理,获得有价值的信息(实时、多数据结构、海量)。 流计算秉承一个基本理念,即数据的价值随着时间的流逝而降低,如用户点击流。因此,当事件出现时就应该立即进行处理,而不是缓存起来进行批量处理。流数据数据格式复杂、来源众多、数据量巨大,不适合采用批量计算,必须采用实时计算,响应时间为秒级,实时性要求高。批量计算关注吞吐量,流计算关注实时性。 流计算的特点: 1、实时

Apache Flink 1.9.0版本新功能介绍

試著忘記壹切 提交于 2019-11-30 00:41:47
摘要:Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时,提供支持流处理和批处理两种类型应用的功能。目前,Apache Flink 1.9.0版本已经正式发布,该版本有什么样的里程碑意义,又具有哪些重点改动和新功能呢?本文中,阿里巴巴高级技术专家伍翀就为大家带来了对于Apache Flink 1.9.0版本的介绍。 演讲嘉宾介绍: 本次分享主要分为以下三个方面: Flink 1.9.0的里程碑意义 Flink 1.9.0的重点改动和新功能 总结 一、Flink 1.9.0的里程碑意义 下图展示的是在2019年中阿里技术微信公众号发表的两篇新闻,一篇为“阿里正式向Apache Flink贡献Blink代码”介绍的是在2019年1月Blink开源并且贡献给Apache Flink,另外一篇为“修改代码150万行!Apache Flink 1.9.0做了这些重大修改!”介绍的是2019年8月Bink合并入Flink之后首次发版。之所以将这两篇新闻放在一起,是因为无论是对于Blink还是Flink而言,Flink 1.9.0的发版都是具有里程碑意义的。 在2019年年初,Blink开源贡献给Apache Flink的时候,一个要点就是Blink会以Flink的一个分支来支持开源

Flink Checkpoint 问题排查实用指南

守給你的承諾、 提交于 2019-11-29 21:42:58
在 Flink 中,状态可靠性保证由 Checkpoint 支持,当作业出现 failover 的情况下,Flink 会从最近成功的 Checkpoint 恢复。在实际情况中,我们可能会遇到 Checkpoint 失败,或者 Checkpoint 慢的情况,本文会统一聊一聊 Flink 中 Checkpoint 异常的情况(包括失败和慢),以及可能的原因和排查思路。 1. Checkpoint 流程简介 首先我们需要了解 Flink 中 Checkpoint 的整个流程是怎样的,在了解整个流程之后,我们才能在出问题的时候,更好的进行定位分析。 从上图我们可以知道,Flink 的 Checkpoint 包括如下几个部分: JM trigger checkpoint Source 收到 trigger checkpoint 的 PRC,自己开始做 snapshot,并往下游发送 barrier 下游接收 barrier(需要 barrier 都到齐才会开始做 checkpoint) Task 开始同步阶段 snapshot Task 开始异步阶段 snapshot Task snapshot 完成,汇报给 JM 上面的任何一个步骤不成功,整个 checkpoint 都会失败。 2 Checkpoint 异常情况排查 2.1 Checkpoint 失败 可以在 Checkpoint

Flink Checkpoint 问题排查实用指南

廉价感情. 提交于 2019-11-29 21:41:29
在 Flink 中,状态可靠性保证由 Checkpoint 支持,当作业出现 failover 的情况下,Flink 会从最近成功的 Checkpoint 恢复。在实际情况中,我们可能会遇到 Checkpoint 失败,或者 Checkpoint 慢的情况,本文会统一聊一聊 Flink 中 Checkpoint 异常的情况(包括失败和慢),以及可能的原因和排查思路。 1. Checkpoint 流程简介 首先我们需要了解 Flink 中 Checkpoint 的整个流程是怎样的,在了解整个流程之后,我们才能在出问题的时候,更好的进行定位分析。 从上图我们可以知道,Flink 的 Checkpoint 包括如下几个部分: 1.JM trigger checkpoint 2.Source 收到 trigger checkpoint 的 PRC,自己开始做 snapshot,并往下游发送 barrier 3.下游接收 barrier(需要 barrier 都到齐才会开始做 checkpoint) 4.Task 开始同步阶段 snapshot 5.Task 开始异步阶段 snapshot 6.Task snapshot 完成,汇报给 JM 上面的任何一个步骤不成功,整个 checkpoint 都会失败。 **2 Checkpoint 异常情况排查 2.1 Checkpoint 失败**