• ARTICLE
  • STRING
  • CONVERTER
  • ENCRYPT
  • NETWORK
  • MORE
    CHART
    MATH
    COORDINATE
    IMAGE
    FILE
  • ARTICLE
    STRING
    CONVERTER
    ENCRYPT
    NETWORK
    MORE
    CHART
    MATH
    COORDINATE
    IMAGE
    FILE
logo Online Tools
All Chinese English Newest Hottest
15 search results Contribute

最近做了几个实时数据开发需求,也不可避免地在使用Flink的过程中遇到了一些问题,比如数据倾斜导致的反压、interval join、开窗导致的水位线失效等问题,通过思考并解决这些问题,加深了我对Flink原理与机制的理解,因此将这些开发经验分享出来,希望可以帮助到有需要的同学。 下文会介绍3个case案例,每个case都会划分为背景、原因分析和解决方法三部分来进行介绍。

15 Technology lddgo Shared on 2024-06-21

序列化是指将数据从内存中的对象序列化为字节流,以便在网络中传输或持久化存储。序列化在Apache Flink中非常重要,因为它涉及到数据传输和状态管理等关键部分。Apache Flink以其独特的方式来处理数据类型以及序列化,这种方式包括它自身的类型描述符、泛型类型提取以及类型序列化框架。本文将简单介绍它们背后的概念和基本原理,侧重分享在DataStream、Flink SQL自定义函数开发中对数据类型和序列的应用,以提升任务的运行效率。

17 Technology lddgo Shared on 2024-06-21

Apache Flink 是一个开源的流处理和批处理框架,具有高吞吐量、低延迟的流式引擎,支持事件时间处理和状态管理,以及确保在机器故障时的容错性和一次性语义。Flink 的核心是一个分布式流数据处理引擎,支持 Java、Scala、Python 和 SQL 编程语言,可以在集群或云环境中执行数据流程序。它提供了 DataStream API 用于处理有界或无界数据流,DataSet API 用于处理有界数据集,以及 Table API 和 SQL 接口用于关系型流和批处理。目前 Flink 最新已经迭代至 1.20 版本,在此过程中不光是 Flink 框架,插件本身也有部分 API 以及配置存在变更,本文主要针对较高版本的 1.17 Flink Pulsar 插件进行测试验证

18 Technology lddgo Shared on 2024-05-30

Flink SQL在业务使用中有较多的双流join场景,当左右流的流量都较大,Join的等待时间即使为1小时,Flink Keyed State(Flink State分Operator State和Keyed State,后文所有State均代表后者)的存储大小也很容易达到TB级(内部默认使用的是RocksDBStateBackend)。 在State我们内部[1]之前就做了RT和长度的metric,当State的存储达到TB级别后,会发现State的scan/next/readNull请求RT会变得较高,另外双流Join不仅流量大,Join query的字段也较多,导致State的Value长度也较大,从而使得任务在流量高峰期CPU存在明显的周期性毛刺,根因是RocksDB的compaction引发。我们下面的内容主要是从业务场景跟进到RocksDB的读写行为,来优化RT耗时高的问题,并使用优化方案缓解compaction的压力。

26 Technology lddgo Shared on 2024-04-09

理想汽车基于Flink on K8s的数据集成实践

32 Technology lddgo Shared on 2023-12-28

在软件开发的世界中,开源已成为普遍关注的话题。越来越多的企业和开发者认识到开源的重要性,并开始积极拥抱开源、贡献开源。自2017年开始,字节跳动流式计算团队开始尝试使用 Apache Flink 作为流式计算引擎,并逐步加大对开源社区的关注和投入。 近两个月来,团队方勇、胡伟华两位同学先后受邀成为 Apache Flink Committer。本文将对两位新晋 Committer 参与开源的心路历程进行专访。

31 Technology lddgo Shared on 2023-08-30

随着阿里云Flink实例的迁移下云以及新增需求接入,自建Flink平台规模逐渐壮大,当前总计已超4万核运行在自建的K8S集群中,然而 Flink 任务数的增加,特别是大状态任务,每次Checkpoint 时会产生脉冲式带宽占用,峰值流量超过100Gb/s,早期使用阿里云OSS作为Checkpoint数据存储,单个Bucket 每 1P数据量只有免费带宽10Gb/s,超出部分单独计费,当前规模每月需要增加1x w+/月。 为了控制这部分成本,得物开展了自建HDFS在Flink Checkpoint场景下的落地工作,实现年度成本节省xxx万元。 此次分享自建HDFS在实时计算checkpoint场景的实践经验,希望能为读者提供一些参考。

35 Technology lddgo Shared on 2023-06-19

在数仓分层架构体系中,从 ODS层到 DWD层数据转换需要进行数据清洗、脱敏、列式压缩等步骤。在B站用户行为埋点数据 ODS到 DWD层转换过程中,为了解决日增千亿条、20+TB/天增量规模下数据重复摄取带来的资源严重消耗的问题,引入了北极星(B站用户埋点行为分析链路)分流,按照部门进行分表。在埋点设计中使用spmid模型,将事件类型拆分为浏览 pv、曝光 show、点击 click等多个事件类型,并以这些事件类型作为除天、小时分区以外的第三级分区,再以事件类型产品来源作为四级分区。通过基于部门业务区分按照埋点事件类型+产品来源以多表多分区控制的形式,最大程度降低下游任务文件数据摄取数量以减少资源消耗。

34 Technology lddgo Shared on 2023-04-06

在日常Flink使用过程中,我们经常遇到Flink任务中某些Slot或者TM负载过重的问题,对日常的资源调配、运维以及降本都带来了很大的影响,所以我们对Flink的task部署机制进行了梳理和调研,准备在后续的工作中进行优化。由于jobGraph的生成以及任务提交流程因任务部署方式而不同,对我们后续的分析也没有影响,这里忽略前置流程,直接从Dispatcher出发,重点关注submit后executionGraph构建以及后续的任务部署过程。

31 Technology lddgo Shared on 2023-03-23

Blink提交采用进程模型(包装flink info/run命令)进行作业执行计划的生成和作业的提交,这个基本是大数据计算引擎jstorm/spark/flink的共识,采用该方式的优点在于: 简单: 用户只需在自己的jar包中进行逻辑处理 引擎client负责以方法调用形式调用用户main方法,然后编译、提交 干净 进程模型用户包用完销毁,引擎版本包通过目录隔离,不用考虑多版本问题。 但这也带来了缺点,每次都得走一遍大量class 加载、校验等jvm启动全流程。同时,大多数作业的的执行计划生成耗时是在20秒以内,也就是说此时瓶颈不在编译阶段,此时jvm启动开销就成为了瓶颈。尤其当这些操作极其高频时,带来的开销不容小视。

38 Technology lddgo Shared on 2023-01-12