Hadoop
文章平均质量分 84
一号IT男
打铁还需自身硬,愿我们都能百炼成钢
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Hadoop数据倾斜处理策略详解
默认的HashPartitioner会将同一个Key的数据分到同一个Reducer。如果某个Key数据量巨大,自定义分区可以将其随机分散到多个Reducer上。场景:某个特定热点Key(如某个大V的用户ID)数据量巨大,且不能被过滤。方案修改Key:为热点Key增加随机前缀(盐化),如将key变成key_1key_2, …key_n。自定义分区器:根据新的随机Key(或原Key)进行分区,确保处理同一个原Key的不同随机Key的数据能被分到不同的Reducer。原创 2025-10-22 22:05:31 · 308 阅读 · 0 评论 -
ETL脚本报错排查指南
] 读懂错误信息:错误类型、描述、发生位置。[ ] 定位错误阶段:是E、T还是L?[ ] 检查连接和权限:源和目标都能连上吗?有读写权限吗?[ ] 检查数据和格式:源数据本身是否“干净”?格式符合预期吗?[ ] 简化问题:用少量数据能复现吗?[ ] 增加日志:在关键步骤加日志,缩小问题范围。[ ] 模块化测试:将ETL流程拆开,分段验证。[ ] 对比环境:如果测试环境正常,生产环境异常,仔细对比环境配置。最后,也是最重要的建议:养成良好的编程习惯。原创 2025-10-19 11:27:53 · 687 阅读 · 0 评论 -
MapReduce原理与流程详解
阶段输入处理输出Map数据分片用户自定义的map()函数中间键值对(k2, v2)ShuffleMap的输出分区、排序、合并、网络传输有序的(k2, list(v2))数据,按分区交给ReduceReduceShuffle后的数据用户自定义的reduce()函数最终结果(k3, v3)关键优点简单性:开发者只需关注业务逻辑(编写map和reduce函数),无需处理分布式并行计算、容错、数据分布等复杂问题。可扩展性:只需增加服务器数量就能线性扩展计算能力,处理更庞大的数据集。容错性。原创 2025-10-19 11:27:25 · 735 阅读 · 0 评论 -
Hive中Shuffle流程详解
阶段核心操作目的Map 端分区 (Partitioning)确定数据去往哪个 Reduce排序 (Sort)使每个分区内数据有序,为 Reduce 端归并排序做准备可选合并 (Combiner)Map 端本地聚合,减少网络传输量Reduce 端拉取 (Fetch/Copy)将属于自己分区的数据从所有 Map 端拉取过来归并排序 (Merge Sort)将所有 Map 端来的数据整合成一个有序的整体分组 (Grouping)原创 2025-10-19 11:26:47 · 505 阅读 · 0 评论 -
Hive执行计划查看方法详解
命令用途推荐度EXPLAIN查看基本的执行阶段和依赖关系。⭐⭐⭐深度调试,查看详细的输入输出元数据。⭐⭐ (需要时使用)查看最直观、信息丰富的执行计划,包含数据量统计。⭐⭐⭐⭐⭐ (首选)调优时的关键检查点:数据倾斜:在的Statistics里,如果某个 Reduce 阶段处理的数据量远大于其他阶段,很可能发生了数据倾斜。全表扫描:检查TableScan操作是否没有带上分区过滤条件(无效的过滤:确认Filter操作符是否在期望的阶段出现。有时过滤条件可能会被推送到更早的阶段以减少数据传输。原创 2025-10-19 11:26:24 · 506 阅读 · 0 评论 -
Yarn原理与工作流程详解
Yarn 的核心原理是通过锁文件机制保证安装的确定性,通过全局缓存和队列优化提升性能和稳定性,通过校验和保证安全性。解析依赖 -> 检查缓存 -> 下载包 -> 校验 -> 扁平化链接 -> 写入锁文件。虽然现代 npm 已经追赶上来,但 Yarn 依然是一个设计优秀、功能强大的依赖管理工具,特别是在 Monorepo 管理方面(通过 Workspaces)有着广泛的应用。原创 2025-10-19 11:25:41 · 1147 阅读 · 0 评论 -
Hive分区与分桶的区别详解
区别:分区是目录级的粗粒度划分,目的是快速定位数据范围;分桶是文件级的细粒度划分,目的是均衡数据、优化JOIN和采样。关系:它们不是互斥的,而是可以结合使用的。一个常见的模式是:首先用分区:按日期、地区等维度创建一级分区,快速过滤掉大部分无关数据。然后用分桶:在分区内部,再对某个高基数列进行分桶,为后续的JOIN、采样等操作提供性能优化。选择使用分区、分桶还是两者结合,取决于你的数据特性、查询模式和处理需求。原创 2025-10-19 11:25:10 · 854 阅读 · 0 评论 -
大数据中如果平常数据量增加都很正常,然后现在数据增长幅度突然剧增,要从哪几个角度去思考到底哪里出现了问题?
这是一个非常经典的大数据运维和监控场景。数据量突然剧增是一个重要的警报信号,需要从外到内、从应用到基础设施进行系统性的排查。原创 2025-10-19 11:24:46 · 941 阅读 · 0 评论 -
hive中一个分区表,一个非分区表,如何用非分区表中的字段作为分区表的分区值?
的动态分区方式,这是Hive中最常用且最高效的方法。原创 2025-10-19 11:24:15 · 214 阅读 · 0 评论 -
HDFS文件路径查找方法总结
方法适用场景优点缺点命令行环境,快速精准查找高效,直接,最常用需要知道大致目录范围命令行环境,简单过滤灵活,可使用所有 grep 功能在超大文件系统中效率较低不熟悉命令,需要可视化操作直观,易用,无需记忆命令需要浏览器访问权限Apache Hue集群已部署,日常管理和查询功能强大,集成度高需要额外安装和配置给你的建议:首选方法:直接使用命令。这是最专业和高效的方式。如果不知道目录:先从根目录开始,但要有心理准备这可能很慢。最好先理清文件可能存放的业务目录(如/user/data。原创 2025-10-19 11:23:49 · 587 阅读 · 0 评论 -
Hive两张十万数据的表,进行左连接后发现数据膨胀会怎么处理
问题原因推荐方案说明右表连接键重复,且业务上只需一条提前聚合(GROUP BY)或首选方案。高效且逻辑清晰。右表连接键重复,且需要所有记录接受膨胀如果是业务需求(如分析所有行为),则膨胀是合理的。连接条件不足增加连接条件检查业务逻辑,确保ON条件足够精确。左右表均为重复键(多对多)接受膨胀,并对度量值进行聚合这是正确的业务形态,重点应放在后续的聚合计算上。处理流程建议分析:使用GROUP BY查询分析左右表连接键的重复度。评估:与业务方确认右表重复数据的处理逻辑(取最新?取第一条?求和?实施。原创 2025-10-19 11:23:26 · 916 阅读 · 0 评论 -
hive 优化器的是如何进行优化的
Hive 优化器是一个强大的“幕后工作者”,它通过 RBO 和 CBO 的组合拳来自动优化你的查询。优化类型核心思想依赖信息示例逻辑优化 (RBO)应用经验规则改写查询查询语法、元数据(如分区信息)谓词下推、列剪裁物理优化 (CBO)计算成本选择最优计划数据统计信息(大小、分布等)最优 Join 顺序要最大化利用优化器,你应该:使用合适的文件格式:ORC 或 Parquet(列式存储,自带统计信息,压缩率高)。采用分区和分桶:为分区剪裁和 SMB Join 创造条件。收集统计信息。原创 2025-10-19 11:22:58 · 675 阅读 · 0 评论 -
Hive中Map Join与SMB Join详解
特性Map JoinSMB Join适用场景小表 Join 大表大表 Join 大表核心思想空间换时间,小表进内存分而治之,预排序分桶Join阶段仅在 Map 端主要在 Map 端(归并排序)Reduce阶段完全不需要通常不需要预处理无需必需(分桶且排序)优点速度最快,避免数据倾斜解决大表Join问题,性能稳定缺点受内存大小限制使用复杂,需要预先规划当你有一张小表时,优先考虑Map Join。当你要 Join 的两个表都是巨型表时,就必须使用SMB Join。原创 2025-09-05 09:06:49 · 942 阅读 · 0 评论 -
一条hive sql到mr , yarn,hdfs整个过程
步骤主要组件职责1. SQL 解析与编译Hive将 SQL 翻译、优化成 MapReduce 执行计划2. 资源调度与任务管理YARN分配资源,启动并监控 ApplicationMaster 和各个 Task3. 数据存储与计算HDFSMapReduceHDFS 提供数据存储;MapReduce 在集群节点上进行分布式计算Hive 负责“翻译”YARN 负责“调度和管家”MapReduce 负责“干活”,而HDFS 负责“仓储”。原创 2025-09-04 10:35:24 · 1200 阅读 · 0 评论 -
MapReduce计算框架原理详解
MapReduce 的精髓在于它通过一个简单而强大的抽象(Map 和 Reduce),将复杂的分布式计算隐藏起来。Shuffle 过程(分区、排序、合并)是连接 Map 和 Reduce 的桥梁,是理解其工作原理的关键。虽然对于一些复杂的迭代计算或流处理,MapReduce 可能不是最高效的选择(因此出现了 Spark、Flink 等更高级的框架),但它奠定了现代大规模分布式数据处理的基础,其“分而治之”的思想至今仍在广泛应用。原创 2025-09-01 20:21:35 · 691 阅读 · 0 评论 -
Map倾斜,Join倾斜,reduce倾斜
Map阶段负责读取输入数据并将其切割成多个分片(Split),每个分片由一个Map Task处理。Map倾斜指的是:个别Map Task读取和处理的数据分片远大于其他Map Task。这通常是由于底层数据源本身的数据分布不均匀造成的。Join倾斜是三种倾斜中最常见和最棘手的一种。它发生在Reduce阶段(或Spark中的Shuffle阶段)之前,但其根源在Join操作。当参与Join的一张或两张表中,用于关联的Key(键)分布极度不均匀时,就会发生Join倾斜。原创 2025-09-01 14:05:44 · 580 阅读 · 0 评论 -
Hive参数优化深度解析
Hive 参数优化是一个“测量->调整->测量”基准测试:首先在未优化或默认配置下运行你的典型查询,记录运行时间。逐项优化:根据上述维度,一次只调整一个或一类参数,观察性能变化。监控分析:结合 Hadoop 集群监控(如 YARN ResourceManager UI)和 Hive 的执行计划(EXPLAIN命令)来定位瓶颈。持续迭代:找到最适合你当前集群硬件、数据规模和业务SQL的最佳参数组合。没有放之四海而皆准的最优配置,最好的配置一定是基于你对自身数据、业务和集群的深入理解而调优出来的。原创 2025-09-01 12:20:54 · 843 阅读 · 0 评论 -
Hive索引的兴衰与现代替代方案
特性Hive 索引物化视图ORC/Parquet 内置索引创建方式手动显式创建手动显式创建自动(由文件格式提供)维护方式手动重建,易不一致自动增量更新完全自动,与数据一体优化范围主要加速WHERE过滤加速WHEREJOINGROUP BY主要加速WHERE过滤存储开销高(额外表)高(存储结果集)低(文件内少量元数据)透明重写否(优化器支持差)是是(执行引擎自动使用)生产推荐不推荐(已过时)强烈推荐强烈推荐(首选文件格式)给你的最终建议:对于新项目:完全不要再使用传统的 Hive 索引。原创 2025-09-01 08:54:51 · 874 阅读 · 0 评论 -
数据库视图的深入探讨与最佳实践
核心定义:视图是基于一个或多个数据库表(或其它视图)的查询结果集而构成的虚拟表。关键点虚拟性:视图本身不存储数据。它不包含任何实际的行或列。它只是一个存储在数据库中的命名查询(SELECT语句)。逻辑存在:对用户和应用程序来说,视图看起来和行为上都像一个真实的表。你可以对它执行SELECT,甚至在许多情况下可以执行INSERTUPDATEDELETE(有特定条件限制)。实时性:每当您查询视图时,数据库引擎都会实时执行其背后的SELECT语句,从基表中获取最新数据。和。原创 2025-08-30 14:12:39 · 732 阅读 · 0 评论 -
Spark SQL 核心概念与应用详解
特性描述核心抽象DataFrame(无类型) 和Dataset(强类型,Scala/Java)执行引擎Catalyst 优化器(逻辑优化 + CBO) +Tungsten(物理执行优化)编程接口SQL和(统一执行引擎)数据源通过支持多种格式 (Parquet, JSON, JDBC, Hive等)核心优势易用性高性能(自动优化),统一性(一站式处理)Spark SQL 已经成为 Spark 生态中应用最广泛、最受欢迎的模块,是大数据领域进行数据清洗、转换、分析和探索的事实标准工具之一。原创 2025-08-30 11:55:01 · 953 阅读 · 0 评论 -
Hadoop MR替换为Spark步骤详解
部署Spark:配置为模式。代码重写:用Spark的API(RDD/DataFrame/Dataset)重写原有的MR任务。这是主要工作量。提交运行:使用将任务提交到YARN。监控调优:利用Web UI和日志监控任务运行状态,并进行性能调优。通过这种方式,你既保留了Hadoop HDFS和YARN的稳定性和可靠性,又享受到了Spark带来的高性能和开发效率,完美实现了计算引擎的升级。原创 2025-08-30 11:37:53 · 742 阅读 · 0 评论 -
hive报错 FAILED: SemanticException [Error 10006]: Line 2:149 Partition not found ‘‘2025-08-28‘‘
这个Hive报错表明系统在表中找不到名为的分区。原创 2025-08-28 16:42:52 · 252 阅读 · 0 评论 -
Hive执行计划JSON详解
Hive 的 JSON 执行计划提供了无与伦比的细节深度,是进行高级 SQL 调优的必备技能。确认优化是否生效: 如分区剪枝、谓词下推。识别性能瓶颈: 如大表触发了CommonJoin而不是MapJoin。理解查询的执行流程: 清楚地看到数据是如何一步步被处理和转换的。虽然一开始会感到复杂,但通过练习和借助可视化工具,你会逐渐掌握这项强大的调优能力。原创 2025-08-28 16:31:25 · 978 阅读 · 0 评论 -
Hive内部表与外部表区别及应用场景
特性内部表 (Internal Table / Managed Table)外部表 (External Table)数据生命周期由Hive管理。DROP TABLE时,表数据和元数据都会被删除。独立于Hive管理。DROP TABLE时,只删除元数据,数据文件仍然保留在HDFS上。存储位置存储在Hive默认的配置路径下(通常是存储位置由用户指定(LOCATION参数),可以在任何HDFS路径。数据所有权Hive拥有数据,认为自己是数据的“所有者”。Hive只是引用数据,不拥有数据。原创 2025-08-28 14:15:36 · 892 阅读 · 0 评论 -
Hive中ORC文件默认压缩算法
方面说明默认压缩ZLIB配置参数常用选项NONEZLIBSNAPPYLZOZSTD如何指定在中设置如何查看使用orc-tools工具的meta命令因此,如果你的 Hive 环境没有经过特殊配置,你创建的 ORC 表默认就会使用ZLIB进行压缩。原创 2025-08-28 13:16:44 · 428 阅读 · 0 评论 -
Hive中ORC文件格式详解
查询性能快:基于列式存储、谓词下推和统计信息,大大减少了磁盘 I/O。压缩率高:节省大量存储空间(通常比文本格式节省 70%-90% 的空间)。支持复杂类型:完美支持 Hive 的复杂数据类型(Array, Map, Struct)。事务支持:ORC 是 Hive 实现 ACID 事务的基础文件格式。内置索引:包含文件级和 Stripe 级的统计信息,用于加速查询。原创 2025-08-28 12:02:14 · 1213 阅读 · 0 评论 -
Hive四种不同的表格存储格式
文本文件:后缀名为.txt, .xml,.json,.csv等这样的文件。原创 2025-08-28 11:58:43 · 649 阅读 · 0 评论 -
Hadoop 3数据纠删技术详解
我们来详细解释一下 Hadoop 3 版本中的数据纠删(注意:是“纠删”,而不是“纠偏”)是什么意思。这是一个非常核心且重要的概念,是 Hadoop 3 相对于早期版本的一个重大改进。原创 2025-08-24 21:09:27 · 460 阅读 · 0 评论 -
有没有遇到过数据倾斜的问题?数据倾斜的表现是什么?
数据倾斜本质上是一种数据分布严重不均的现象。在分布式计算中,理想情况下数据和工作负载应该均匀地分散在所有计算节点上,这样每个节点能在相近的时间内完成工作,从而实现高效的并行计算。而当发生数据倾斜时,某一部分数据(通常对应某个或某几个Key)的数据量或计算复杂度远远超过了其他部分,导致少数几个计算节点承担了绝大部分的计算任务,而其他节点早早完成后却处于空闲等待状态。这就像一条10车道的高速公路,所有车都挤在1条车道上,其他9条车道空空如也。原创 2025-08-24 20:59:16 · 461 阅读 · 0 评论 -
Hive排序关键字区别详解
要全局有序-> 用ORDER BY(数据量小的时候)。要局部有序,且分区和排序字段不同-> 用。要局部有序,且分区和排序字段相同-> 用CLUSTER BY(注意只能是升序)。只需要局部有序,不关心如何分区-> 用SORT BY(让Hive随机分区)。理解这些区别的关键在于深入理解Hive和MapReduce的工作原理:数据如何从Map端发出,如何通过分发到不同的Reducer,以及最终如何输出。原创 2025-08-24 20:53:44 · 438 阅读 · 0 评论 -
Hive中Map和Reduce数量设置指南
这是一个关于Hive性能调优非常核心的问题。在Hive中,Map和Reduce任务的数量直接决定了作业的执行效率和资源利用率。下面我将详细解释如何设置以及其依据。原创 2025-08-24 20:44:43 · 982 阅读 · 0 评论 -
Hive表连接与传统数据库区别
避免随机点查询:Hive 是为批量分析而生的,它的优势在于一次处理大量数据。不要期望它像 MySQL 一样提供低延迟的单行查询或连接。关注数据倾斜:写 Hive JOIN 时必须考虑数据分布。对于倾斜的 key,常用的解决方法是:过滤掉异常的 key(如将倾斜的 key 拆分开来处理(如先单独处理,再合并结果)。使用skewjoin参数(利用 MapJoin:如果连接中有一个表非常小(比如几百 MB),Hive 的 CBO 通常会自动将其转换为 MapJoin。原创 2025-08-24 20:37:29 · 429 阅读 · 0 评论 -
Hive中map函数及map_keys、map_values详解
函数作用输入输出map创建一个 Map 结构交替的键值对列表map<K, V>map_keys提取Map 中所有的键一个 Map 对象array<K>map_values提取Map 中所有的值一个 Map 对象array<V>这三个函数是 Hive 中处理 Map 类型数据的基础和核心,熟练掌握它们对于进行复杂的数据提取和转换至关重要。它们通常与explode以及聚合函数结合使用,以发挥最大的威力。原创 2025-08-24 20:31:23 · 578 阅读 · 0 评论 -
Hive分桶数量决策方法
决定Hive分桶数量的黄金法则在保证桶数量是集群CPU核心数整数倍、且与其他相关表桶数匹配的前提下,让每个桶的文件大小尽可能接近HDFS块大小。一个简单的决策流程:是否有JOIN优化需求?-> 是:与相关表保持桶数一致或成倍数。无特定JOIN需求?总数据量 / HDFS块大小。将上述结果向上取整,并对齐到集群CPU核心数的整数倍。对于超大规模数据(PB级),可以适当降低每个桶的目标大小(例如0.5个块大小)以增加并行度;对于中小规模数据,则要谨慎,宁愿桶少一些,也不要产生小文件。原创 2025-08-24 20:30:37 · 519 阅读 · 0 评论 -
Hadoop版本演进及选择建议
版本系列状态核心特点建议Hadoop 1.x完全淘汰仅有MapReduce(MRv1),无YARN仅用于历史学习,不应在任何新环境使用。Hadoop 2.x维护模式引入YARN,成为通用平台,稳定大量旧生产环境仍在运行,处于维护状态,不再增加新特性。建议现有用户规划升级。Hadoop 3.x主流活跃纠删码、多NN、性能增强、容器化支持新集群部署的首选。拥有更多特性、更好的性能和更高的效率。原创 2025-08-24 20:21:17 · 1069 阅读 · 0 评论 -
维度表和事实表总结
例如,数据仓库中可能需要累积或者存储订单从下订单开始,到订单商品被打包、运输、和签收的各个业务阶段的时间点数据来跟踪订单声明周期的进展情况。“事实”这个术语表示的是业务事件的度量值(可统计次数、个数、件数、金额等),例如,订单事件中的下单金额。每一个事实表的行包括:具有可加性的数值型的度量值、与维表相连接的外键、通常具有两个和两个以上的外键、外键之间表示维表之间多对多的关系。周期型快照事实表中不会保留所有数据,只保留固定时间间隔的数据,例如每天或者每月的销售额,或每月的账户余额等。2)周期型快照事实表。原创 2025-08-19 09:52:07 · 425 阅读 · 0 评论 -
Hadoop利用ZooKeeper搭建高可用架构
Hadoop利用ZooKeeper实现高可用(High Availability, HA)主要是为了解决NameNode单点故障(SPOF)问题。在传统Hadoop架构中,如果NameNode宕机,整个集群将不可用。通过ZooKeeper实现的HA架构可以自动进行故障转移(Failover),确保集群持续可用。原创 2025-08-19 08:57:35 · 598 阅读 · 0 评论 -
SPU与SKU的区别解析
SPU(Standard Product Unit,标准化产品单元)和 SKU(Stock Keeping Unit,库存量单位)是电商和零售行业中常用的两个概念,它们的核心区别在于。理解两者的区别能帮助优化商品管理(如避免重复上架SPU)和精准控制库存(通过SKU追踪具体单品)。:在SPU基础上细化到具体规格,确保每个变体唯一。:描述商品的公共属性,不涉及具体规格。(颜色、存储容量不同即不同SKU)(每个SKU对应独立的库存和价格)原创 2025-08-16 10:58:41 · 1757 阅读 · 0 评论 -
分布式计算中的DAG(有向无环图)详解
DAG(Directed Acyclic Graph,有向无环图)是现代分布式计算框架的核心执行模型,它彻底改变了传统MapReduce的线性执行方式。定义:组成元素:Spark的DAG:Flink的DAG:Tez的DAG:性能提升:执行优化:灵活性:以Spark的WordCount优化为例:五、DAG调度过程逻辑计划生成:根据用户代码构建初始DAG物理计划优化:谓词下推分区合并算子融合阶段(Stage)划分:以shuffle为边界划分阶段阶段内任务可并行执行任务(Task原创 2025-08-15 11:49:51 · 776 阅读 · 0 评论 -
Tez、Spark、MR三大计算框架对比
Spark通常在现代大数据架构中更受欢迎,因为它提供了更好的性能和更广泛的功能集,而Tez主要用于优化Hadoop生态系统中的现有工作负载。原创 2025-08-15 09:49:00 · 400 阅读 · 0 评论
分享