- 博客(19)
- 收藏
- 关注
原创 Flume Kafka源与汇的topic覆盖问题解决
Flume中KafkaSource到KafkaSink的Topic覆盖问题解决方案:当使用KafkaSource从topicA消费数据并通过KafkaSink发送到topicB时,可能因header中的topic信息导致目标topic被覆盖。解决方法是通过自定义拦截器修改事件header,强制将topic字段设为topicB。实施步骤包括:1)理解问题成因;2)创建自定义拦截器修改header;3)配置Flume agent应用拦截器并设置静态topicB为目标。关键点:拦截器需在source阶段应用,且K
2025-11-15 14:41:33
1108
原创 深入解析RDD算子分类与特性
摘要:RDD算子分为转换算子(Transformations)和行动算子(Actions)两大类。转换算子如map、filter等惰性生成新RDD,行动算子如collect、count等触发实际计算。RDD具有五大特征:数据分区、不可变性、依赖关系、惰性计算和数据位置优化,这些特性使其能够高效处理大规模数据并支持容错。常见算子包括map、reduceByKey等转换操作和collect、save等行动操作。
2025-11-04 08:29:23
520
原创 Spark 中数据读取方式详解:SparkSQL(DataFrame)与 SparkCore(RDD)方法对比及实践
本文介绍了PySpark中两种数据读取方法:基于DataFrame的SparkSQL和基于RDD的SparkCore。SparkSQL通过spark.read接口支持多种数据源(CSV/JSON/Parquet/JDBC/Hive表),可使用option参数配置读取选项(如头信息、分隔符等),是处理结构化数据的首选方式。SparkCore通过sc.textFile读取文本文件为RDD,适用于非结构化数据但功能有限。文章建议优先使用SparkSQL,并提供了各类数据源的读取代码示例,包括文件路径、JDBC连接
2025-11-03 18:57:35
1046
原创 Hive三大连接操作全解析
摘要:本文详解Hive中的三种连接操作:1)全连接(FULL JOIN)保留两表所有记录,缺失值用NULL填充;2)半连接(LEFT SEMI JOIN)仅返回左表匹配记录,相当于EXISTS查询;3)交叉连接(CROSS JOIN)生成笛卡尔积。对比分析了各连接类型的匹配逻辑、结果特征和适用场景,并给出性能优化建议:优先使用SEMI JOIN,谨慎处理CROSS JOIN大数据集,建议开启MapJoin优化。关键词包括全连接、半连接、交叉连接和性能优化。
2025-11-03 08:46:51
351
原创 Spark性能优化:repartition与coalesce深度解析
Spark中的repartition和coalesce用于调整分区数量,但有重要区别:repartition可增减分区但会触发全量shuffle,数据均匀分布但开销大;coalesce仅能减少分区,避免shuffle(合并相邻分区),性能高效但可能导致数据倾斜。适用场景:增加分区或需要严格均衡时用repartition;减少分区且追求性能时用coalesce。注意事项:coalesce可能产生倾斜,必要时可先repartition后coalesce;避免冗余shuffle操作。最佳实践是优先使用coales
2025-11-03 08:35:53
552
原创 3种断码率计算方法解析
摘要:本文介绍了三种计算门店断码率的方法:1)任意尺码无库存即断码;2)服装需3连码、鞋子需4连码;3)任意4连码中至少3个有库存。每种方法都给出详细计算逻辑和SQL实现示例,包括关联尺码表与库存表、使用窗口函数校验连码情况等。执行时需根据实际数据库调整语法,确保数据关联准确性。
2025-10-27 09:21:32
451
原创 Hive优化实战:30分钟速降90%查询耗时
Hive优化策略摘要:通过列式存储(ORC/Parquet)减少60%存储空间并支持谓词下推;分区(时间维度)和分桶(JOIN键)提升查询效率;启用MapJoin、向量化查询和Tez引擎优化计算性能;配置并行执行、小文件合并等参数;针对数据倾斜采用随机盐值打散或SkewJoin;典型案例中通过格式转换和分区使查询时间从45分钟降至3分钟。定期更新统计信息以辅助优化器决策。
2025-09-24 20:10:28
401
原创 SQL 分区与排序关键字大揭秘:原理、用法、优化技巧全收录
【摘要】SQL中的PARTITIONBY、DISTRIBUTEBY、ORDERBY、SORTBY和CLUSTERBY关键字功能各异:PARTITIONBY用于窗口函数逻辑分区,不改变输出顺序;DISTRIBUTEBY控制数据物理分布到reducer;ORDERBY执行全局排序但性能开销大;SORTBY实现reducer内局部排序;CLUSTERBY兼具DISTRIBUTEBY和SORTBY功能。核心区别在于PARTITIONBY属逻辑操作,其他涉及物理数据处理,其中ORDERBY是唯一保证全局排序的语法。选
2025-09-18 19:35:33
1928
原创 吃透 Hive 窗口函数 OVER:从入门到精通,解决 90% 数据统计难题
Hive窗口函数OVER详解:该函数用于在结果集的子集上执行计算而不改变行数。通过OVER()子句定义窗口范围,关键参数包括PARTITION BY(分组)、ORDER BY(排序)和窗口框架(如ROWS BETWEEN)。常见应用包括:1)排名函数ROW_NUMBER()、RANK();2)聚合函数SUM()、AVG();3)分析函数LAG()/LEAD()。典型场景有累计销售额计算、部门工资排名和移动平均计算。使用时需注意性能优化和避免常见错误,如未指定PARTITION BY导致全表扫描。窗口函数适用
2025-09-17 20:37:49
1852
原创 HDFS纠删码技术深度解析
摘要:HDFS纠删码(EC)是一种高效的数据冗余技术,通过数学编码将数据分块并生成校验块,相比传统副本机制显著降低存储开销(如RS-6-3策略仅需1.5倍存储)。采用(n,k)编码方案,可容忍m=n-k块丢失,通过有限域运算实现数据编解码。该技术特别适合冷数据存储,但存在计算开销大、恢复成本高的缺点,需权衡性能与存储成本。HDFS通过条带化存储和分布式块部署实现EC功能,是优化大数据存储的重要解决方案。
2025-09-16 18:35:10
830
原创 YARN的ResourceManager故障恢复全解析
摘要:YARN通过高可用性(HA)机制实现ResourceManager(RM)故障后的任务自动恢复。HA采用Active/Standby RM架构,结合ZooKeeper选举机制和状态存储(如HDFS),确保新RM能快速接管并恢复应用程序状态。NodeManager和ApplicationMaster会重新注册,任务从断点继续执行。配置时需启用HA并设置共享存储,建议定期测试故障转移,优化超时参数。启用HA可避免单点故障,保证任务持续运行和数据完整性。具体配置包括修改yarn-site.xml文件,启动多
2025-09-16 18:32:17
781
原创 从 “脑裂” 到 “Leader 诞生”:Zookeeper 选举算法核心逻辑拆解
Zookeeper使用FastLeaderElection算法实现分布式选举,基于zxid(事务ID)和myid(节点ID)的二元比较机制。节点启动后进入LOOKING状态广播投票,优先选择zxid更大的节点,若相同则选择myid更大的节点。获得超过半数投票的节点成为Leader,确保数据一致性和脑裂防护。该算法能在200ms内快速完成选举,是Zookeeper实现分布式协调的核心机制。
2025-09-16 17:10:37
476
原创 HDFS联邦机制解析与实战应用
NameNode联邦机制通过多NameNode架构有效解决了HDFS的扩展性和可靠性问题,在解读中需理解其分区原理和块池机制;在实际开发中,它适用于大规模数据场景,需合理配置命名空间和集成高可用。开发者应关注分区设计和性能监控,以最大化系统收益。实践中,建议参考Hadoop官方文档进行测试部署。
2025-09-15 19:03:19
965
原创 Hadoop高可用集群实战指南
生产环境建议部署$QJM\ (Quorum\ Journal\ Manager)$+$ZooKeeper$方案,JournalNode需独立部署在非NameNode节点,ZooKeeper集群节点数应为奇数(3/5/7)。确保所有节点$Hadoop\ Version$一致: $$ \Delta \text{版本} \leq 0.1.x $$
2025-09-15 16:56:41
485
原创 深入解析Hadoop Shuffle过程
shuffle过程确保了map输出数据高效、有序地传递给reduce任务,是MapReduce的核心机制。整个过程可概括为:map输出 → 分区排序 → 磁盘溢出 → 网络传输 → reduce合并排序 → reduce输入。理解shuffle有助于优化Hadoop作业性能,例如通过调整参数减少延迟。如果您有具体场景(如大数据量处理),我可以进一步提供优化建议!
2025-09-13 08:27:47
500
原创 Shell三剑客:grep、sed、awk终极指南
grep:适合快速搜索和过滤,优先用于简单模式匹配。sed:适合批量编辑(如替换或删除),尤其在脚本中自动化。awk:适合复杂数据处理(如列操作、计算),支持编程逻辑。组合使用:三者常结合管道,例如,先搜索错误行,提取第二列,再替换内容。测试命令在临时文件上,避免误操作。查阅手册(man grepman sedman awk)获取更多参数。正则表达式是核心,确保模式正确。
2025-09-03 20:05:41
961
原创 Linux服务器免密SSH登录全攻略
在 Linux 环境中,实现服务器之间的免密操作(如 SSH 登录或文件传输)通常通过配置 SSH 公钥认证来完成。这能提高安全性和效率,避免每次手动输入密码。以下是一个结构清晰的逐步指南,基于标准 Linux 工具(如 OpenSSH),确保过程真实可靠。我会以中文解释,并在必要时使用代码块展示命令。
2025-09-02 17:27:26
450
原创 Linux文件系统核心:inode与block解析
Linux文件系统中,inode和block是核心存储机制。inode存储文件元数据(权限、大小等),每个文件有唯一inode编号;block(通常4KB)存储实际文件内容。inode通过指针关联block,系统先通过文件名找到inode,再定位block读取数据。实际应用可通过命令查看inode/block信息,block大小影响性能,inode耗尽会导致存储错误。理解这些机制有助于优化磁盘管理和故障排查。
2025-09-01 19:02:58
1908
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅