- 博客(24)
- 资源 (1)
- 收藏
- 关注
原创 参与现场问题解决总结(Kafka、Hbase)
能分析需求。综上所述:Arthas的profile命令主要适用于Java应用程序的CPU性能分析,而Pyroscope是一个更全面的性能分析平台,支持多种编程语言,提供更多的可视化工具和灵活的集成选项。选择哪个工具取决于您的具体需求和应用程序的特点。如果需要跨语言性能分析或更广泛的性能分析功能,Pyroscope可能是更好的选择,当前大数据系统以Java主,arthas profile功能可能是更好的选择。
2023-10-07 20:09:16
1289
翻译 统一的Catalog API(FLink FLIP-30翻译)
一、动机随着FLink在流处理中的广泛采用,Flink也显示了其在批处理中的潜力。改进Flink的批处理,尤其是在SQL方面的能力,将使Flink在流处理之外得到更多的应用,并为用户提供流和批处理需求的全套解决方案。另一方面,Hive已将其重点放在大数据技术及其完整的生态系统上。对于大多数大数据用户而言,Hive不仅是大数据分析和ETL领域SQL引擎,还是一个数据管理平台,可以在Hive平台上...
2020-02-13 18:39:39
1219
原创 FLink全链路时延---测量方式
FLink全链路时延—测量方式文章目录FLink全链路时延---测量方式一、背景二、源码分析来源三、腾讯Oceanus监控指标参考四、Flink LatencyMarker实现思路五、Flink LatencyMarker实现源码六、总结说明一、背景FLink Job端到端延迟是一个重要的指标,用来衡量FLink任务的整体性能和响应延迟(大部分流式应用,要求低延迟特性)。通过流处理引擎竞品...
2019-11-28 16:23:45
2958
3
翻译 FLink Function DDL支持(FLink FLIP-79翻译、总结进展)
文章目录目的修改计划前提Function DDL语法创建函数语句(Create Function Statement)删除函数语句(Drop Function Statement)修改函数语句(Alter Function Statement)显示函数语句(Show Function Statement)使用场景从classpath加载UDF从远程资源加载UDF目的这个FLIP目的在于,支持f...
2019-11-07 14:40:34
2388
翻译 Operator细粒度资源管理(FLink FLIP-53翻译)
文章目录目的:目的:目前(Flink 1.9), Flink采用粗粒度的资源管理方法,tasks根据job的最大并行度,部署到尽可能多的预定义slots中,而不管每个task/operator可以使用多少资源。上述方法易于设置,但是不能最佳的利用和性能。任务可能具有不同的并行度(parallelisms),因此不是所有的slots都包含完整的任务管道(task pipeline)。对于任...
2019-11-06 16:38:31
1243
翻译 TaskExecutor统一内存配置(FLink FLIP-49翻译)
文章目录目的:(1)解决流和批不同的配置(2)解决Streaming方式RocksDB配置复杂原文链接:FLink FLIP-49: Unified Memory Configuration for TaskExecutors目的:该提案目的是解决Flink 1.9 TaskExecutor内存配置的几个缺点。(1)解决流和批不同的配置目前,流和批作业TaskExecutor内存的配置...
2019-11-01 10:21:25
1964
原创 FLink 源码分析--(四)Regular Join(普通join)
文章目录一、Flink Join介绍1、Join分类A、Regular Join(普通join)B、Time Window JoinC、Join LETERALD、Join Temporal Table时态表E、维表Join2、Regular Join说明3、Regular Join特性一、Flink Join介绍1、Join分类在上一篇文章FLink 源码分析–(三)Time Window...
2019-09-03 14:35:07
4211
1
原创 FLink聚合性能优化--MiniBatch分析
[@ TOC]一、MiniBatch的演进思路1、MiniBatch版本Flink 1.9.0 SQL(Blink Planner) 性能优化中一项重要的改进就是升级了微批模型,即 MiniBatch(也称作MicroBatch或MiniBatch2.0),在支持高吞吐场景发挥了重要作用。MiniBatch与早期的MiniBatch1.0在微批的触发机制略有不同。原理同样是缓存一定的数据后...
2019-08-29 11:41:09
6056
原创 Flink1.9.0源码调试介绍&增加调试超时时间
一、Flink源码调试概述在Flink1.9.0源码研究过程中,调试源码是一个非常重要的手段,通过查看真实的运行数据和变量,来了解源码内部运行逻辑如果是本地Jvm调试Flink,我们可以运行各种xxxITCase测试用例,加断点来调试,这个相对容易如果我们想调试线上集群,获取JobMaster、TaskManager运行数据、运行逻辑,来解决一些难以在本地Jvm复现的问题,则情况变得复杂...
2019-07-25 14:39:10
3216
2
原创 FLink 源码分析--(三)Time Window Join
文章目录一、概述1、SQL的优势2、FLink SQL 核心功能3、Flink Join的分类一、概述1、SQL的优势在介绍Time Window Join前,可以先看看Flink SQL相关的整体介绍和架构:声明式:用户只需要表达我想要什么,至于怎么计算那是系统的事情,用户不用关心。自动调优。查询优化器可以为用户的 SQL 生成最有的执行计划。用户不需要了解它,就能自动享受优化器...
2019-07-12 15:31:54
2054
1
原创 解决Flink1.9.0源码中,SourceTable中有EventTime,执行Window报错
文章目录一、window报错问题描述二、报错相关Flink源码分析1、StreamLogicalWindowAggregateRule的作用2、StreamLogicalWindowAggregateRule#getTimeFieldReference()方法分析3、创建TimeIndicatorRelDataType过程4、TableSourceTable#getRowType()设置字段类型三...
2019-07-11 16:45:33
5093
1
原创 Flink源码分析--(二)FLink SQL Window功能
文章目录一、window功能概述二、window分类及整体流程三、 创建WindowOperator算子四、WindowOperator处理数据一、window功能概述Flink窗口具有多种类型,包括基于计数的滑动窗口和滚动窗口,基于系统时间和事件时间的滑动窗口、滚动窗口以及会话窗口,从而把源源不断产生的数据根据不同的条件划分成一段一段有边界的数据区间,使用户能够利用窗口功能实现很多复杂的统...
2019-05-31 10:28:59
5678
1
原创 Flink源码分析--(一)异步I/O访问外部数据:AsyncWaitOperator
文章目录一、异步I/O概述二、创建AsyncWaitOperator一、异步I/O概述Flink流计算系统中经常需要与外部系统进行交互,比如需要查询外部数据库以关联上用户的额外信息。通常,我们的实现方式是向数据库发送用户a的查询请求(例如在MapFunction中,同步方式访问),然后等待结果返回,在这之前,我们无法发送用户b的查询请求Flink的Async I/O允许用户在数据流中使...
2019-05-28 16:30:15
1217
1
原创 Spark Structured Streaming源码扩展--(六)流式Shuffle支持多分区及侧边输出
文章目录一、概述一、概述上一篇文章,我们介绍了Spark Continous连续处理模式,已有流式shuffle的实现,分析了绑定的物理计划和内部writer、reader实现。在本文,我们将介绍如何扩展Spark Continous流式shuffle源码,以支持多个下游分区、侧边输出、自动分析侧边输出的依赖、删除ReceiverEpochMarker机制提高并发性能等原理。Spar...
2019-03-14 17:01:31
940
原创 Spark Structured Streaming源码分析--(五)Continuous连续处理模式流式Shuffle
文章目录一、概述二、 原生ContinuousCoaleseExec介绍1、创建ContinuousCoaleseEexc2、ContinuousCoaleseEexc执行的操作一、概述本文主要介绍Spark SQL中,Repartition算子绑定,重点介绍Spark 2.4.0 流处理Continous模式新增的流式Repartition和Shuffle操作,为后续源码提供一些理论基础。...
2019-03-01 17:12:26
1147
原创 spark 2.4.0源码分析--(四)Spark Netty RPC实现及Endpoint
文章目录一、NettyRPCEnv及实现一、NettyRPCEnv及实现留名,本周加上后续内容
2019-01-23 17:10:13
1615
原创 spark 2.4.0源码分析--(三)Spark Netty通信传输层架构
文章目录一、TansportSever服务度一、TansportSever服务度留名,本周加上后续内容
2019-01-23 17:08:15
2115
原创 spark 2.4.0源码分析--(二)AppStatusListener与SQLAppStatusListener事件响应及存储
接上一篇文章,事件总线分发的event,一个非常重要的目标就是存入AppStatusListener,SQLAppStatusListener内部的kvstore: ElementTrackingStore,用于Spark UI展示 :Spark UI中Job、Stage、Task页面,调用AppStatusStore提供的方法,读取kvstore中存储的rdd任务相关信息,并显示Spar...
2019-01-23 16:01:34
1969
2
原创 spark 2.4.0源码分析--(一)事件总线LiveListenerBus
spark事件总线的核心是LiveListenerBus,其内部维护了多个AsyncEventQueue队列用于存储和分发SparkListenerEvent事件。spark事件总线整体思想是生产消费者模式,消息事件实现了先进先出和异步投递,同时将事件的产生(例如spark core创建stage、提交job)和事件的处理(例如在Spark UI显示任务信息)分离,在一定程度上提升了系统的异步...
2018-09-28 11:09:23
1590
原创 Spark Structrued Streaming源码分析--(四)ProgressReporter每个流处理进度计算、StreamQueryManager管理运行的流
ProgressReporter是每个StreamExecution持有的特性:abstract class StreamExecution( xxx ) extends StreamingQuery with ProgressReporter with Logging {}在当前批次计算完成并写出到sink后,会调用ProgressReporter的finishTrigg...
2018-09-01 14:45:56
1573
原创 Spark Structrued Streaming源码分析--(三)Aggreation聚合状态存储与更新
通过维持聚合数据的状态,并比较水位线watermark删除不再更新的聚合数据,spark实现了流计算中unbounded table(持续更新状态的无界table),一个典型的实例:val windowedCounts = words.groupBy( window($"timestamp&a
2018-09-01 14:45:48
3368
2
原创 Spark Structured Streaming源码分析--(二)StreamExecution持续查询引擎
接前一篇文章,我们分析了StreamQueryManager创建流的过程,分为createQuery()和start()两个步骤,StreamExecution的执行起点为query.streamingQuery.start(),代码如下: def start(): Unit = { logInfo(s&
2018-09-01 14:45:39
3337
2
原创 Spark Structrued Streaming源码分析--(一)创建Source、Sink及自定义输入、输出端
一、示例example二、通过DataStreamReader.load()方法,查找Source并创建DataFrame一、示例example 从Kafka Topic读取记录行,统计单词个数 val dataStreamReader: DataStreamReader = spark .readStream .format(&a
2018-09-01 14:45:29
3049
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人