- 博客(14)
- 收藏
- 关注
原创 HDFS读写流程全解析
客户端 → NameNode(获取Block位置) → DataNode(就近读取) → 数据整合 → 返回用户。客户端 → NameNode → DataNode(Pipeline) → ACK确认 → 完成。第1副本:客户端所在节点(若客户端是DataNode),否则随机选一个负载较低的节点。第3副本:与第2副本 **相同机架** 的不同节点(平衡网络开销与可靠性)第2副本:与第1副本 **不同机架** 的节点(防止单机架故障)✅ 优势:既保证跨机架容错,又减少跨机架网络传输开销。
2026-03-12 15:37:55
337
原创 Shell四剑客:awk、sed、cut、sort实战指南
在 Shell 脚本和命令行操作中,awk、sed、cut 和 sort 是四个最常用的文本处理工具。它们功能互补,常用于日志分析、数据清洗、格式转换等任务。以下是每个工具的核心介绍、常用语法、实用示例以及对比总结。
2026-02-28 13:52:59
331
原创 Spark与MR任务卡99%终极排查指南
Spark 是基于内存的 DAG 引擎,任务卡在 99% 通常表现为 某个 Stage 中的个别 Task 永远跑不完,或者 最后一个小 Stage 一直无法提交。原因排查方法关键指标/日志数据倾斜查看卡住 Task 的 数据量,是否远大于其他 Task。Spark UI -> Stages -> Task 列表 -> / 频繁 Full GC查看 Executor 的 使用率,是否长期接近 100%。Spark UI -> Executors -> / 推测执行干扰查看是否有大量 在运行,占用资
2026-02-27 10:53:02
672
原创 Spark RDD五大核心特性
一个分区的、不可变的、有血缘记录的、惰性计算的分布式数据集合”。SparkRDD (Resilient Distributed Dataset,弹性分布式数据集)是 Spark 中最基本的数据抽象。它代表一个不可变、可分区、里面的元素可并行计算的集合。理解 RDD 的特性是掌握 Spark 核心原理的关键。以下是 RDD 的5 大核心特性。
2026-02-26 10:00:00
1395
原创 Hive谓词下推:高效查询的核心技术
Hive谓词下推(PPD)是优化查询性能的关键技术,通过将过滤条件尽可能下推到执行计划底层,减少数据读取和处理量。它支持分区裁剪、存储层下推(ORC/Parquet格式)和算子层下推三种方式。优化要点包括:避免对列使用函数、合理利用分区字段、使用列式存储格式,并通过EXPLAIN命令验证下推效果。需注意外连接、UDF等场景可能限制下推效果。遵循SARGable原则和合理配置参数可显著提升查询效率。
2026-02-25 13:09:08
698
原创 Hive性能优化实战
摘要:本文系统介绍了Hive查询优化的关键技术,包括:1)存储优化,推荐使用列式格式(Parquet/ORC)并合理分区;2)SQL优化,重点解决JOIN性能、数据倾斜和聚合操作;3)参数调优,涉及MapReduce任务分配和Hive特有参数;4)数据倾斜处理方案;5)元数据管理和小文件合并策略。通过格式选择、查询重构、资源配置和表结构设计等多维度优化,可显著提升Hive查询效率,特别适用于大数据分析场景。
2025-11-05 13:53:22
1103
原创 Flink SQL 实战:解决流与流 + Paimon 维表混合 Join 的空指针异常
在基于 Flink 1.19 的实时数据处理中,当同时进行 "MySQL CDC 流与流 Join" 和 "流与 Paimon 维表 Join" 时,可能会遇到一个棘手的空指针异常(java.lang.NullPointerException),且错误日志指向 Flink 内部的RecordAttributesBuilder类。这种异常并非由关联字段为空导致,而是源于 Flink 对复杂 Join 场景的执行计划处理不当。本文将详解该异常的根源,并通过 "先流流 Join,再关联 Paimon 维表" 的拆
2025-10-30 14:32:09
1328
原创 Hive分桶表失效场景与解决方案
分桶表是 Hive 中优化大数据查询的重要手段,其核心价值在于通过哈希实现数据的均匀、细粒度拆分。使用时需严格遵循 “定义明确、插入正确、维护规范” 的原则,结合数据量、查询模式和分桶列特性判断适用性。只有在数据量大、高频按高基数列操作、需要高效采样或 Join 的场景下,分桶表才能发挥最大价值,避免为分桶而分桶导致的资源浪费。
2025-10-23 09:31:54
2125
原创 FlinkSQL维表Join实战指南
在实时数据处理场景中,我们经常需要将流数据与静态或动态变化的数据进行关联,这些静态或动态变化的数据被称为“维表”。例如,在电商订单实时分析中,需要将订单流中的商品ID关联商品维表获取商品名称、类别等信息;在用户行为分析中,需要将用户ID关联用户维表获取用户画像数据。Flink SQL作为Flink生态中处理实时数据的核心组件,提供了灵活高效的维表Join能力。本文将从维表Join的基本概念出发,深入讲解Flink SQL中不同类型维表Join的实现方式、适用场景,并结合实战案例帮助大家快速上手,最后给出性能
2025-10-21 17:26:04
1236
原创 Spark性能优化
Spark性能优化指南:从资源配置到代码执行的关键策略。通过合理配置Executor、Driver和动态资源调整,平衡资源利用率;规避低效算子如collect(),采用高效替代方案;优化数据处理流程,选择列式存储格式(Parquet/ORC),实施过滤下推;调整Shuffle并行度与压缩策略,减少网络与磁盘开销;内存管理则通过调整执行/存储比例,适配不同计算场景。最终实现计算密集型任务的高效执行与缓存密集型作业的资源最大化利用。
2025-10-19 15:49:54
923
原创 Hive UDF开发必要部分
摘要:Hive自定义函数分为三类:UDF(一对一处理)、UDAF(多对一聚合)和UDTF(一对多拆分行)。关键实现要点包括:UDF需继承基类并实现evaluate()处理单行;UDAF需分Resolver和Evaluator两层,实现聚合逻辑和中间状态管理;UDTF需实现process()方法通过forward()输出多行。所有类型都需处理null值、资源清理和类型校验,确保查询稳定性和正确性。
2025-10-17 15:31:59
1845
原创 MySQL进程状态解析与优化指南
MySQL中show processlist命令的State字段详解:该字段显示连接进程状态,是诊断性能问题的关键。常见状态分为四类:1)连接/空闲类(如Sleep)通常正常;2)查询执行类(如Query、Sendingdata)需结合Time判断,过长需优化SQL;3)锁等待类(如Waitingforrowlock)需紧急处理;4)其他状态(如Openingtables)。重点关注Time过长的状态,优先解决锁竞争,并通过EXPLAIN优化慢查询,同时合理配置连接参数。
2025-10-16 11:24:44
2178
原创 数据仓库维度不全导致上月统计差异解决方案
数据仓库中时间周期指标的统计需特别注意维度一致性问题。本月维度不全可能导致历史数据关联不完整,进而引发下游数据差异。解决此类问题的核心在于保证维度数据的完整性和关联逻辑的准确性,同时通过校验机制确保数据一致性。
2025-10-14 13:16:17
375
原创 Hive新增字段空值问题:CASCADE关键字
摘要:Hive表新增字段未使用CASCADE关键字导致MR查询空值而Presto正常,原因是MR依赖未更新的元数据而Presto直接读取数据文件。解决方案是修改表结构时添加CASCADE(如ALTER TABLE ADD COLUMN ... CASCADE)确保元数据同步。CASCADE关键字用于级联更新依赖对象,避免手动处理依赖关系,但需谨慎使用以防意外修改。典型场景包括删除分区和修改表结构时维护数据一致性。(149字)
2025-10-13 09:34:07
569
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅