非常有必要熟练掌握 Flink 框架的使用和运维。本文不会涉及对 Flink 框架的技术剖析,而是侧重于工程实践,力求实用。笔者会结合自己运维多个大型 Flink 任务的经验,对于『如何系统化地调优 Flink 任务、提升性能』给出一套完整的方法论。# 如何发现性能问题?解决问题的前提是发现问题。那么如何知道一个 Flink 任务是否存在性能问题呢?Flink 作业性能不佳时一般有以下一些表现,可根据业务情况综合判断:- 上游 Kafka Top...
> > 字节跳动开发套件数据集成团队(DTS ,Data Transmission Service)在字节跳动内基于 Flink 实现了流批一体的数据集成服务。其中一个典型场景是 Kafka/ByteMQ/RocketMQ -> HDFS/Hive 。Kafka/ByteMQ/RocketMQ ->... 本文主要介绍 DTS MQ dump 在极端场景中遇到的数据丢失问题的排查与优化,最后介绍了上线效果。 本文分两次连载,第一篇主要介绍Flink Checkpoint 以及 MQ dump 写入流程。HDFS 集群某个元数据节点由于硬件故障...
> > > 字节跳动开发套件数据集成团队(DTS ,Data Transmission Service)在字节跳动内基于 Flink 实现了流批一体的数据集成服务。其中一个典型场景是 Kafka/ByteMQ/RocketMQ -> HDFS/Hive 。Kafka/ByteMQ/RocketMQ... 本文主要介绍 DTS MQ dump 在极端场景中遇到的数据丢失问题的排查与优化,最后介绍了上线效果。 本文分两次连载,[第一篇主要介绍Flink Checkpoint 以及 MQ dump 写入流程。](http://mp.weixin.qq.com/s?__biz=MzkwM...
Flink 引入了分布式快照 Checkpoint 的概念,定期将 State 持久化到 Hdfs 上,如果作业 Failover,会从上一次成功的 checkpoint 恢复作业的状态(比如 kafka 的 offset,窗口内的统计数据等)。 在不同的业务场景下,用户往往需要对 State 和 Checkpoint 机制进行调优,来保证任务执行的性能和 Checkpoint 的稳定性。阅读下方内容之前,我们可以回忆一下,在使用 Flink State 时是否经常会面临以下问题:* 某个状态算子出现...
Kafka/ByteMQ/RocketMQ -> HDFS/Hive(下面均称之为 MQ dump,具体介绍可见 字节跳动基于 Flink 的 MQ-Hive 实时数据集成 ) 在数仓建设第一层,对数据的准确性和实时性要求比较高。目前字节跳动中国区 MQ dump 例行任务数巨大,日均处理流量在 PB 量级。巨大的任务量和数据量对 MQ dump 的稳定性以及准确性带来了极大的挑战。本文主要介绍 DTS MQ dump 在极端场景中遇到的数据丢失问题的排查与优化,最后介绍了上线效果。# 线上...
日志服务提供 Kafka 协议消费功能,您可以使用 Flink 的 flink-connector-kafka 插件对接日志服务,通过 Flink 将日志服务中采集的日志数据消费到下游的大数据组件或者数据仓库。 场景概述Apache Flink 是一个在有界数据流和无界数据流上进行有状态计算分布式处理引擎和框架。Flink 提供了 Apache Kafka 连接器(flink-connector-kafka)在 Kafka topic 中读取和写入数据。日志服务支持为指定的日志主题开启 Kafka 协议消费功能,开启...
本文介绍流式计算 Flink 版支持的连接器和 Format。 支持的连接器下表列举了流式计算 Flink 版目前提供的连接器,以及各连接器支持的表类型。 连接器 描述 源表 结果表 维表 引擎版本 kafka 提供从 Kafka Topic 或 BMQ Topic 中消费和写入数据的能力。 ✅ ✅ ❌ Flink 1.11、Flink 1.16 upsert-kafka 提供以 upsert 方式从 Kafka Topic 中读取数据并将数据写入 Kafka Topic 的能力。 ✅ ✅ ❌ Flink 1.16 jdbc ...
每条日志对应一条 Kafka 消息。您可以使用 Flink kafka 连接器连接日志服务,通过 Flink 任务将日志服务中采集的日志数据消费到下游的大数据组件或者数据仓库。本文通过 Flink SQL 任务,实现读取 TLS 主题中的日志数... 在任务编辑区下方可查看到任务调试结果。任务结果确认满足预期后,请及时停止调试,避免长时间占用资源。 启动任务。 在任务编辑区,单击上方的上线按钮。 在任务上线设置对话框,选择 Flink 资源池、设置任务优先级...
每条日志对应一条 Kafka 消息。您可以使用 Flink kafka 连接器连接日志服务,通过 Flink 任务将日志服务中采集的日志数据消费到下游的大数据组件或者数据仓库。本文通过 Flink SQL 任务,实现读取 TLS 主题中的日志数... 在任务编辑区下方可查看到任务调试结果。任务结果确认满足预期后,请及时停止调试,避免长时间占用资源。 启动任务。 在任务编辑区,单击上方的上线按钮。 在任务上线设置对话框,选择 Flink 资源池、设置任务优先级...
注意事项使用 Flink SQL 的用户需要注意,不再支持 kafka-0.10 和 kafka-0.11 两个版本的连接器,请直接使用 kafka 连接器访问 Kafka 0.10 和 0.11 集群。Kafka-0.10 和 Kafka-0.11 两个版本的连接器使用的 Kafka 客户端有缺陷,在某些情况下可能无法自动提交 Kafka offset 信息。 使用 datastream API 开发的用户需要注意,在读 Kafka 消息的时候,不要使用 FlinkKafkaConsumer010 和 FlinkKafkaConsumer011 两个 consumer,请直接使...
Flink 基于 Chandy-Lamport 算法实现了分布式一致性的快照,从而提供了 exactly-once 的语义。(Flink 基于两阶段提交协议,实现了端到端的 exactly-once 语义保证。内置支持了 Kafka 的端到端保证,并提供了 TwoPhase... 优化。Flink并不是将大量对象存在堆上,而是将对象序列化到一个预分配的内存块上,这个内存块叫MemorySegment,它代表了一段固定长度的内存(默认32KB)也就是flink中最小的内存分配单元,并且提供了非常高效的读写方法。...
flink_taskmanager_job_task_operator_currentEmitEventTimeLag Millisecond checkpoint checkpoint 时长 flink_jobmanager_job_lastCheckpointDuration Millisecond check 失败次数 flink_jobmanager_job_numberOfContinuousCheckpointFailure Count Kafka Max KafkaConsumer Records Lag V11:flink_taskmanager_job_task_operator_KafkaConsumer_records_lag_max V16:flink_taskmanager_job_task_operator_KafkaSou...