自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 Flink总结

# 一、Flink 核心概念综述# 二、Flink 开发环境搭建# 三、Flink Data Source# 四、Flink Data Transformation# 五、Flink Data Sink# 六、Flink 窗口模型# 七、Flink 状态管理与检查点机制# 八、Flink Standalone 集群部署

2026-03-21 18:54:40 51

原创 04 spark的shuffle详解

在 MapReduce 框架中, Shuffle 阶段是连接 Map 与 Reduce 之间的桥梁, Map 阶段通过 Shuffle 过程将数据输出到 Reduce 阶段中。由于 Shuffle 涉及磁盘的读写和网络 I/O,因此 Shuffle 性能的高低直接影响整个程序的性能。Spark 也有 Map 阶段和 Reduce 阶段,因此也会出现 Shuffle。

2026-03-17 13:45:54 464

原创 【案例:数据倾斜】调度任务20min,倾斜1h21min

有任务平时跑20min,今天1h21min,延迟很严重。

2026-03-13 16:06:21 139

原创 AI使用提示词

【代码】AI使用提示词。

2026-01-07 16:14:10 238

原创 03 spark的几种join的方式

下图展示Spark的五种连接计算方式,默认连接策略为ShuffleSortMergeJoin,适合大规模数据且无需广播,连接策略的选择核心在JoinSelection 类实现。左深树(Left-Deep Tree):树形结构向左倾斜,Join节点的右侧只能是叶子节点,很多数据库默认将左深树作为Join Reorder的搜索空间。右深树(Right-Deep Tree):树形结构向右倾斜,左深树的镜像,Join节点的左侧只能是叶子节点。连接树(Join Tree)是一个二叉树,刻画每个表的Join顺序,

2026-01-07 11:06:10 405

原创 02 spark的webui怎么看

打开 Spark UI,首先映入眼帘的是默认的 Jobs 页面。Jobs 页面记录着应用中涉及的 Actions 动作,以及与数据读取、移动有关的动作。其中,每一个 Action 都对应着一个 Job,而每一个 Job 都对应着一个作业。可以看到,导航条最左侧是 Spark Logo 以及版本号,后面则依次罗列着 6 个一级入口。每个入口的功能与作用如下的表格介绍序号入口页内容作用1JobsActions以及数据的读取与移动操作作业详情概览DD2Stages。

2026-01-06 18:06:45 450

原创 Python笔记-Part1

Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。 和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。 但是大量的应用程序不需要这么快的运行速度,因为用户根本感觉不出来。例如开发一个下载MP3的网络应用程序,C程序的运行时间需要0.001秒,而Python程序的运行时

2025-08-28 16:54:23 897

原创 【PySpark】之DataFrame基础操作

select函数选择DataFrame的一列或者多列,返回新的DataFrame。

2025-08-11 14:15:00 861

原创 02 【高级SQL技巧】之【互为好友】&经典题目【共同共同粉丝关注】

有一张relaton表,字段为(uid,follower_id),求最多共同关注者的两个用户uid1和uid2及共同关注者个数。

2025-08-11 11:42:42 370

原创 01 【高级SQL技巧】之【断点重分组】&经典题目【数值累计重分组】

1.取lag值比较,相等的取0,不相等的取1(因为是变化了才断点充分组),得到flag。3.按断点重分组flag进行row_number()开窗聚合分组。2.按flag进行sum()聚合开窗得到断点充分组flag。

2024-12-25 11:15:55 439

原创 02 【高级SQL技巧】之【互为好友】&经典题目【买家 & 卖家】

已知买家和卖家的交易关系,简要表结构如下。求两个买家之间共同卖家的数量。

2024-12-24 17:25:46 275

原创 02 【高级SQL技巧】之【互为好友】&经典题目【互为好友】

1009|1005–请计算有多少对互为好友的朋友。

2024-12-24 16:27:27 376

原创 【hive优化】数据倾斜优化总结

简单的讲,数据倾斜就是我们在计算数据的时候,数据的分散度不够,导致大量的数据集中到了一台或者几台机器上计算,造成数据热点问题(数据倾斜的另一种说法),这些数据的计算速度远远低于平均计算速度,导致整个计算过程过慢(木桶效应)。map阶段数据倾斜现象:少数map任务比其他map任务结束的比较晚reduce阶段数据倾斜现象少数reduce任务比其他reduce任务结束的比较晚。

2024-11-29 15:26:16 1819

原创 【Hadoop生态圈】Hadoop 概述

Hadoop Distributed File System,简称 HDFS,是一个分布式文件系统。1)NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。2)DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。3)Secondary NameNode(2nn):每隔一段时间对NameNode元数据备份。

2024-11-26 15:52:01 1426

原创 【Flinkcdc问题解决】java.lang.NoClassDefFoundError: org/apache/flink/shaded/guava18/com/google/common/util

添加flink-sql-connector-mysql-cdc依赖程序正常运行具体原因咱也搞不明白,这个版本问题困扰了咱好长时间,网上查过各个版本的解决方法,都无效,特此记录。也尝试过 flinkcdc 2.4.2 版本以及更高的flinkcdc版本,都会报另一个错误。

2024-11-21 18:19:46 1209 3

原创 【hive优化】参数类优化总结

默认值是false,当有数据倾斜的时候进行负载均衡,生成的查询计划有两个MapReduce任务,第一个MR Job中,Map的输出结果会随机分布到Reduce中,每个Reduce做部分聚合操作,并输出结果,这样处理的结果是相同的Group By Key有可能被分发到不同的Reduce中,从而达到负载均衡的目的;第二个MR Job再根据预处理的数据结果按照Group By Key分布到Reduce中(这个过程可以保证相同的Group By Key被分布到同一个Reduce中),最后完成最终的聚合操作。

2024-11-21 14:48:46 1326

原创 01 【高级SQL技巧】之【断点重分组】&经典题目【用户连续访问重分组】

使用【sum】开窗函数对【断点重分组flag】进行累计相加,每当遇到【flag =1】的时候就会重新分一组,达成断点重分组。请对上面的数据进行分组,某个用户连续的访问记录如果时间间隔小于60秒,则分为同一个组,并统计每个用户各分组的总停留时长。采用【lag】开窗函数取得每个用户【上次访问时间戳】;ps:以【用户id】分组,以【访问时间戳】排序。如果【用户停留时间】大于等于60s,则为1,否则为0,获得【断点重分组flag】以 【当前访问时间戳】 - 【上次访问时间戳】得到每个用户【用户停留时间】

2024-11-21 12:16:51 570

原创 【hive优化】hive的CBO优化提前过滤导致脚本报错案例

奇怪,数据不是被过滤掉了么,如下图,怎么还会传入最后的UDF函数报错。脚本执行,报错后查看Yarn执行日志,发现报错如。,大致原因是:自定义的UDF函数传入了错误的参数。被提前过滤,原因找到,应该是cbo自动优化导致。的条件过滤改在了在reduce阶段执行。在查找错误数据后发现错误数据的。

2024-11-20 15:21:09 453

原创 Redis安装

1.将 daemonize no 改为 daemonize yes ,让服务在后台启动。问题1: Jemalloc/jemalloc.h:没有那个文件。注意:Centos6版本以上只能使用gcc8以上版本进行编译。3.protected-mode默认为yes,修改为no。protected-mode默认为yes,修改为no。2.注释掉bind 127.0.0.1。注释掉bind 127.0.0.1。2)修改redis.conf。1)禁用Linux防火墙。

2024-11-13 19:13:24 831

原创 【Yum报错】Could not resolve host: mirrorlist.centos.org; Name or service not known

解决这个问题最简单的办法是重新安装Yum源,一次到位,避免无效尝试。

2024-11-13 16:08:50 810

原创 Centos7的Yum源搭建

【代码】Centos7的Yum源搭建。

2024-11-13 14:33:28 607

个人练习使用代码创建的练习

个人练习使用代码创建的练习

2026-04-30

大数据基于Flink的资源与状态优化:实时流处理性能调优及故障排除

内容概要:本文系统介绍了 Apache Flink 的性能调优与故障排除方法,涵盖资源配置、状态管理、反压处理、数据倾斜优化、SQL 调优及常见问题排查。重点包括合理设置 TaskManager 内存模型、利用 CPU 资源、并行度规划、RocksDB 状态后端优化、Checkpoint 配置、反压定位与分析手段(如火焰图、Metrics)、数据倾斜解决方案(Local KeyBy、两阶段聚合、Split Distinct 等),以及 Flink SQL 的 MiniBatch、LocalGlobal、Filter 语法等高级优化技巧。同时提供了链路延迟测量、对象重用、细粒度滑动窗口替代方案等性能提升策略,并列举了生产环境中常见的异常及其处理方式。; 适合人群:具备一定 Java 和大数据基础,从事 Flink 开发与运维工作 1-3 年的研发人员。; 使用场景及目标:① 指导开发者在生产环境中对 Flink 作业进行性能调优,确保高吞吐、低延迟与稳定性;② 帮助快速定位并解决反压、数据倾斜、Checkpoint 失败、内存溢出等典型问题;③ 提升对 Flink 内部机制的理解,如状态管理、背压传播、窗口优化等; 阅读建议:建议结合实际生产环境进行实践验证,优先掌握资源配置与反压分析等基础调优技能,在此基础上深入学习 RocksDB 优化、SQL 高级特性等进阶内容,并熟练使用 Web UI、火焰图、Metrics 等工具辅助诊断问题。

2026-03-16

【大数据处理】基于Spark Core与SparkSQL的分布式计算框架:集群部署模式与核心数据结构RDD分析

内容概要:本文系统性地介绍了 Apache Spark 框架的核心组件与核心技术,涵盖 Spark Core、Spark SQL 和 Spark Streaming 三大模块。在 Spark Core 部分,详细阐述了其运行环境(包括 Standalone、YARN 及高可用模式)、核心架构(Driver、Executor、Master/Worker)、关键概念(如 RDD、DAG、并行度、窄/宽依赖)以及 RDD 的创建、转换与行动算子,并深入探讨了序列化、依赖关系、任务划分和持久化机制。Spark SQL 部分则介绍了其与 Hive 的关系,重点讲解了 DataFrame 和 DataSet 两大核心抽象及其相互转换,并演示了如何通过 SQL、DSL 语法进行数据处理,以及如何与多种数据源(JSON、CSV、MySQL、Hive)交互。最后,Spark Streaming 部分介绍了其流式处理模型 DStream,展示了如何通过多种方式(如 Socket、Kafka)接入数据,并利用有状态(如 updateStateByKey)和无状态转换,配合窗口操作实现实时计算,并提及了优雅关闭等生产环境考量。; 适合人群:具备一定编程基础,熟悉 Scala 或 Java,了解大数据基础知识并对分布式计算框架感兴趣的研发人员、数据工程师及学生。; 使用场景及目标:①掌握 Spark 在不同集群环境(Standalone/YARN)下的部署与配置;②深入理解 Spark 的运行架构、任务调度与执行原理;③熟练运用 RDD、DataFrame/DataSet 进行批处理数据开发;④掌握使用 Spark Streaming 构建实时流处理应用的方法。; 阅读建议:此资源内容详尽,理论与实践紧密结合,建议读者在学习时搭建相应的实验环境(如本地或虚拟机集群),并动手实践文中的代码示例和配置步骤,以加深对 Spark 原理和 API 的理解。

2026-03-16

【大数据处理】基于Flink的流式计算架构解析:集群角色、部署模式与运行时优化技术研究

内容概要:本文系统总结了Apache Flink的核心知识体系,涵盖其集群架构、部署与运行模式、运行时架构、DataStream API编程、时间语义与窗口、处理函数、状态管理、容错机制及Flink SQL等内容。文章详细阐述了Flink的三大核心角色(Client、JobManager、TaskManager)及其职责,对比了会话模式、单作业模式和应用模式三种部署方式的优缺点。在运行时架构部分,深入解析了JobManager的三大组件(JobMaster、ResourceManager、Dispatcher)、TaskManager的任务槽(Slot)机制以及数据流从逻辑图到物理图的转换流程。对于编程API,文章介绍了执行环境的创建、各类数据源与汇的使用、核心转换算子(如map、filter、keyBy、window)以及全窗口函数与增量聚合函数的结合应用。特别强调了事件时间语义、水位线(Watermark)机制以及如何处理乱序和迟到数据。在高级特性方面,文章详细说明了KeyedProcessFunction的定时器使用、不同类型的状态(Keyed State和Operator State)管理、检查点(Checkpoint)和保存点(Savepoint)的容错机制,以及如何实现端到端的精确一次(exactly-once)语义。最后,全面介绍了Flink SQL的动态表、持续查询、时间属性、DDL/DML操作以及与Table API的互操作。; 适合人群:具备一定Java/Scala编程基础,对大数据处理有基本了解,从事流处理相关工作的研发人员,特别是工作1-3年,希望系统掌握Flink框架的技术人员。; 使用场景及目标:①深入理解Flink的分布式架构和任务调度原理,能够根据业务需求选择合适的部署和运行模式;②熟练掌握DataStream API和Flink SQL,能够开发高效的实时数据处理应用;③掌握Flink的状态管理和容错机制,能够开发高可靠、高可用的流式应用;④理解并应用事件时间语义和水位线,处理乱序数据,实现精确的实时计算。; 阅读建议:本文档内容详实,理论与实践紧密结合,建议读者在学习过程中结合Flink官方文档和实际代码进行验证。对于核心概念如时间语义、水位线、检查点等,应通过编写示例程序来加深理解。在学习处理函数和状态管理时,重点关注其生命周期和资源管理。对于Flink SQL部分,建议在SQL Client中动手实践,观察执行计划和结果。

2026-03-16

【大数据实时数仓】基于Flink-CDC的MySQL变更数据捕获技术:全量增量同步与分布式一致性实现方案

内容概要:本文详细介绍了基于 Flink 的 CDC(Change Data Capture,变更数据捕获)技术,重点讲解了 Flink-CDC 的核心原理与实际应用。文章首先阐述了 CDC 的基本概念及其分类,比较了基于查询和基于 Binlog 两种方式的优劣,随后深入介绍 Flink-CDC 如何通过 flink-cdc-connectors 组件实现对 MySQL 等数据库全量和增量数据的高效同步。文档提供了 DataStream 和 Flink SQL 两种编程方式的代码示例,并展示了如何配置检查点、状态后端以及自定义反序列化器来满足复杂业务需求。此外,还解析了 Flink-CDC 2.0 的架构设计,包括 Chunk 切分、并行读取、无锁快照、Binlog 位点管理等关键技术,解决了传统版本中存在的全量同步性能差、锁表等问题,实现了高吞吐、低延迟、精确一致的数据同步能力。; 适合人群:具备一定大数据基础,熟悉 Flink、MySQL 和流式处理框架的研发人员,尤其是从事实时数仓、数据集成、ETL 开发的工程师;适合工作年限在1-3年以上的开发者进阶学习。; 使用场景及目标:① 实现数据库变更数据的实时捕获与同步,构建低延迟的实时数仓;② 掌握 Flink-CDC 在全量+增量一体化同步中的核心技术原理与工程实践;③ 学习如何通过自定义反序列化、Checkpoint 和并行读取优化数据同步性能;④ 理解 Flink-CDC 2.0 的 Chunk 机制与一致性保障机制,提升系统稳定性与扩展性。; 阅读建议:此资源以理论结合代码实战的方式展开,建议读者在本地搭建 MySQL+Flink+HDFS 环境,动手运行示例代码并调试关键流程,重点关注 Chunk 分片逻辑、Binlog 位点控制及状态恢复机制,从而深入掌握 Flink-CDC 的底层实现原理与最佳实践。

2026-03-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除