Ink's Blog

Less Is More

ZooKeeper 故障时如何保证 Flink JobManager 的高可用?

Flink on YARN 模式下 HDFS + ZooKeeper 实现 HA

上篇文章 Flink JobManager 高可用详解 介绍了 Flink JobManager 的高可用及其实现,文章后面讨论了一种异常场景:「若 ZooKeeper 发生了比较大的故障,宕机时间比较久,此时如何保障 Flink JobManager 的高可用?」带着这个问题,今天进行一些更深入的探索。 移除 ZooKeeper?在 Flink On YARN 模式下,仅会存在一个 J......

「Notes」Streaming Systems 第二章

大规模数据处理的四个核心问题:What, Where, When And How

本章可以说是干货满满,作者从宏观上讲了大规模数据处理需要解决的四个核心问题: What:处理的数据最终要计算出什么结果? Where:在什么地方计算出结果? When:何时最终输出结果? How:如何优化结果? 那么这四个问题的答案分别是什么,我们接着看。 1、What:TransformationTransformation 指的是对数据进行转换,所以第一个问题「处理的数据最终要计算出......

浅谈 Flink DAG:从 DataStream API 到物理执行图

对于一个数据处理流程,常见的思路就是抽象成一个图,同样的 Flink 中对整个数据处理的抽象也是有向无环图(DAG),并且 Flink 的 DAG 分成了多层,各层之间递进转换,本文将简单探讨下面几个问题: 1. Flink DAG 为何要设计成多层?2. 各层 DAG 都是如何生成的? 从 HelloWorld WordCount 说起首先让我们从最简单的 WordCount 代码开始......

「Notes」Raft 算法论文:In Search of an Understandable Consensus Algorithm

本文是 Raft 算法论文的阅读笔记,主要是个人的一些理解,不保证完全正确。论文地址:Raft Paper Raft 用法用来解决什么问题?Raft 是一种共识算法,它是从复制状态机的背景下提出的,关于复制状态机可以看下这篇文章:什么是日志复制状态机? 简单来说,要实现分布式系统的存储,首要的条件就是实现多副本进行数据冗余,防止单点故障带来的数据丢失问题。但多节点备份又会引起新的问题,如......

聊一聊 Flink 增量 checkpoint 的问题

本文主要讲解如下内容: 1. 增量 checkpoint 原理简介2. 增量 checkpoint 的问题以及如何解决 背景增量 checkpoint 简介首先,简单介绍下什么是增量 checkpoint。 容错机制是 Flink 一个强大的特性,保证了 exactly-once 的语义,而容错的核心机制就是 checkpoint。checkpoint 是一次全局性的、异步的生成应用状态......

Flink JobManager 高可用详解

说到高可用,本质上都是为了尽可能降低系统的不可用时间,对于 Flink 这样的流计算引擎而言,高可用也就意味着实时任务的断流时间尽可能的小,表现在时间上就是低延迟,这对一些时效性要求高的作业来说至关重要。当然,Flink 任务整体的高可用涉及到很多方面,如 JobManager 保证高可用、TaskManager 的故障恢复、甚至 connector 上可以做一些高可用保障,本文主要介绍 J......

Flink on YARN 部署详解(III)

Flink Job 的提交和运行

上文讲了 Flink JobManager 的启动过程,也就是完成了一个 Flink Cluster 的部署,那么接下来我们看一下一个 Flink Job 的提交运行过程。 Flink Job 提交的大体流程如下: 这个图画的是早期 Flink 版本的架构,图中的 JobManager 在老的 runtime 框架中是存在的,现在把它看成是 JobMaster 就可以。 我们分成以下两......

Flink on YARN 部署详解(II)

启动 JobManager 的过程

上文主要介绍了 YARN 的架构,一个 Flink 任务真正运行到 YARN 上可以拆分成以下两步: 启动 Flink 集群,其实就是启动 JobManager。 提交 Flink Job,JobManager 内会启动该任务的 JobMaster 组件,同时在分配的 executor 节点上启动 TaskManager。 本文介绍在 YARN 上启动 Flink 集群的过程,由于 s......

Flink on YARN 部署详解(I)

YARN 架构 && Flink on YARN 简介

Flink on YARN 应该是生产环境中最常见也是最成熟的部署方式了吧,当然 on K8s 也是比较多的,这里我们就探究 Flink 在 YARN 上是如何提交、部署、运行、管控资源的。 YARN 简介Apache Hadoop YARN(Yet Another Resource Negotiator,另一种资源协调者),是一个通用的资源管理系统和调度平台,可以为基于其运行的任务、应......

「Notes」Flink 轻量级异步快照论文

Flink Checkpoint 的原理

在 「Notes」分布式快照算法:Chandy-Lamport 论文阅读 我们介绍了分布式系统下如何实现全局性快照,Flink 基于这篇论文进行了改进,实现了一种更轻量级的异步屏障快照算法(asynchronous barrier snapshotting, ABS),具体论文是 Lightweight Asynchronous Snapshots for Distributed Data......