flink
未读
基于Flink快速开发实时TopN
TopN 是统计报表和大屏非常常见的功能,主要用来实时计算排行榜。流式的TopN可以使业务方在内存中按照某个统计指标(如出现次数)计算排名并快速出发出更新后的排行榜。 flink支持各种各样的流数据接口作为数据的数据源,本次demo我们采用内置的socketTextStream作为数据数据源。 St
Flink Sort-Shuffle 实现简介
本文介绍 Sort-Shuffle 如何帮助 Flink 在应对大规模批数据处理任务时更加游刃有余。主要内容包括: 数据 Shuffle 简介 引入 Sort-Shuffle 的意义 Flink Sort-Shuffle 实现 测试结果 调优参数 未来展望 Flink 作为批流一体的大数据计算引擎,
flink
未读
基于EventTime和WaterMark处理乱序和迟到数据
时间与迟到乱序的数据 在实际的业务中,我们经常会遇到数据迟到的情况,这个时候基于窗口进行计算的结果就不对了,Flink中watermark就是为了解决这个问题的,理解watermark之前,先来说一下flink中的三个与流数据相关的概念,ProcessTime、EventTime、Ingestion
Flink 源码阅读笔记(8)- Task 之间的数据传输
在这篇文章中,我们将探讨一个 Flink 作业在实际运行时,不同的 Task 之间是如何进行数据交换的。由于不同的 Task 可能并非运行在同一个 TaskManager 中,因而数据传输的过程中必然涉及到网络通信,文中也会对 Flink 的网络栈的实现,包括反压机制等,进行分析。 概览 Flink
Flink 源码阅读笔记(7)- 内存管理
基于 JVM 的大数据处理分析引擎面临的一个问题是,为了高效地处理数据,有大量的数据需要保存在内存中。直接使用 JVM 堆内存来管理这些数据对象是最简单的实现,但是这样会导致一系列问题:首先,在有大量的数据对象不停地创建和失效的情况下,要正常地管理和控制堆内存并非易事,很容易引发 OOM 问题;其次
Flink 源码阅读笔记(6)- 计算资源管理
在 Flink 中,计算资源的是以 Slot 作为基本单位进行分配的。本文将对 Flink 中计算资源的管理机制加以分析。 Task Slot 的基本概念 我们在前面的文章中了解了 Flink 集群的启动流程。在 Flink 集群中,每个 TaskManager 都是一个单独的 JVM 进程(非 M
Flink 源码阅读笔记(5)- 集群启动流程
在 Flink 1.5.0 版本发布的时候,Flink 迎来了一个重要的改进:根据 FLIP-6 重构了 Flink 集群部署和任务处理模型,以便更好地和管理资源和调度任务,更优雅地和 Yarn、 Mesos、Kubernetes 等框架进行集成。 在这篇文章中,我们将对 Flink 集群的启动流程
Flink 源码阅读笔记(4)- RPC
作为一个分布式系统,Flink 内部不同组件之间通信依赖于 RPC 机制。这篇文章将对 Flink 的 RPC 框架加以分析。 例子 先来看一个简单的例子,了解 Flink 内部的 RPC 框架是如何使用的。 public class RpcTest {
private static final
Flink 源码阅读笔记(3)- ExecutionGraph 的生成
我们前面已经分析过 StreamGraph, JobGraph 的生成过程,这两个执行图都是在 client 端生成的。接下来我们将把目光头投向 Flink Job 运行时调度层核心的执行图 - ExecutionGraph。 和 StreamGraph 以及 JobGraph 不同的是,Execu