山大软工实践hive(14)-总结

HIVE面试别再死记硬背了!从内部表到数据倾斜,我用一个实战项目帮你理清思路 本文通过电商用户行为分析实战项目,深入解析HIVE从数据仓库构建到性能调优的全链路实践。涵盖外部表设计、分区策略、存储格式选择、数据倾斜解决方案等核心面试考点,帮助求职者摆脱八股文死记硬背,掌握大数据面试实战技巧。 阅读详情

2021SC@SDUSC

山大软工实践hive(14)-总结

回顾一下,虽然我前面几篇都去看别人的解析,看算法思想,没有解析源码,但这一部分是十分必要的,如果我不知道输入的OPTree是个什么结构,不知道优化器的一些优化思想,哪怕我从一开始直接搜索Optimizer找到了优化器,也会全程不知道该干什么。而如果我从总体流程上寻找逻辑优化从哪里开始,是更困难的。
而导致我一开始这么困难的原因是任务分工,小组人员彼此不能看同一部分,而hive恰恰是hql解析占大头,所以只能按照流程图一人拿一个流程,除了第一部分的输入很明确:hql,其他的输入以及从哪里开始都很模糊,特别是会涉及到数据结构,总得知道它用来干什么吧。而且相关的资料少,源码的注释在设计到算法思想时也很少能直观的get到表达的点。
说实话,读源码的确有益,因为能够知道别人怎么构建项目,能增强自己读代码的能力,但说实话,一方面这不符合这课原本的宣传:学习技术;另一方面,如果代码足够折磨人,反而干耗时间,效率很低。

话说回来,总结一下逻辑优化这部分的操作

  1. 输入是OPTree,比起说是Tree不如说是有向无环图DAG,简单的DAG会长这样:TS->FIL->SEL->FS,即 表读取->where->select->输出,逻辑优化是优化DAG结构以及储存的语句,来提高效率
  2. 当上一个流程把OPTree构建好后,会使用Optimizer的initialize方法,把满足条件的优化器加入列表,再用optimize方法依次调用优化器
  3. 单个优化器的操作流程是:定下自己的规则,用自己的walker在DAG上走,按特定顺序对节点一个一个dispatch,即对节点判断是否满足某条规则,找到最小cost的规则,调用相应的processor,对节点的谓语甚至结构进行改动。也有一些优化器不是这个流程,不过我就没看了
  4. 所有优化器优化完后结束这部分,输出也是DAG

顺便把第13篇博客的表复制过来

序号做了什么对应博客
1源码环境搭建博客1
2算法的数据结构博客2
3数据结构的详细原理博客3-4
4一些优化涉及的思想原理博客5-6
5逻辑优化的大体流程博客5后半部分
6详细的调用细节博客7-11
7逻辑优化过程的结构分析博客12
8逻辑优化在总体流程上的位置博客13

软工实践就到此完结了

Hive总结.docx Hive原理/Hive SQL/Hive 函数/数据仓库分层和建模/Hive sql优化/数据倾斜 立即下载

相关推荐

hive实验报告.docx

完成Hive工具的安装和配置 Hive工具能够正常启动运行 Hive控制台命令能够正常使用 够正常操作数据库,表,数据

HIVE总结

一:hive作用 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。 Hive本质:将HQL转化成MapReduce程序 (1)Hive处理的数据存储在HDFS (2)Hive分析数据底层的实现是MapReduce (3)执行程序运行在Yarn上 1.1:Hive优缺点 1>Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数; 缺点: 1)Hive的HQL表达能力有限 (1)迭代式算法无法表达 (2)数

xiaodi2016的博客 8910

详细Ubuntu 22.04 配置最新UR机械臂仿真环境(ros2-humble, ur-sim, ur-ros2-driver)

使用ubuntu22.04.01和ur-sim, ur-driver进行ur机械臂的仿真

verloge的博客 1万+

Hive总结

文章目录1. 概念2. Hive与Hadoop的关系3. Hive中的命令3.1 创建数据库并指定hdfs存储位置3.2 修改数据库3.3 查看数据库信息3.4 创建表并指定字段之间的分隔符4. Hive中的四种表结构4.1 内部表4.2 外部表4.3 分区表4.4 分桶表 1. 概念 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能(HQL). 其本质是将SQL转换为MapReduce的任务进行运算,底层由HDFS来提供数据的存储,说白了hiv

星是河的眼的博客 4214

从原理到实战:ARS548 4D毫米波雷达数据处理与多模态融合全解析

本文深入解析了4D毫米波雷达ARS548的工作原理与数据处理全流程。从FMCW测距测速、MIMO虚拟天线阵列到点云生成的三步FFT处理,提供了详尽的Python代码实现。文章进一步探讨了与激光雷达、相机的多模态时空对齐与融合策略,并指导如何构建用于自动驾驶感知训练的多模态标注数据集,为相关算法工程师提供了从理论到实践的完整指南。

weixin_29161719的博客 366

别再死记公式了!用HFSS/CST手把手教你仿真一个2.4GHz WiFi的PIFA天线(附参数调试技巧)

本文详细介绍了使用HFSS和CST仿真软件设计2.4GHz WiFi PIFA天线的全流程,包括建模准备、分步操作指南和参数调试技巧。通过可视化结果和实战案例,帮助工程师快速掌握天线设计的关键参数优化方法,提升辐射性能和工作效率。

weixin_31682031的博客 336

Hive学习总结

本文为Hive学习总结 一、产生背景 1)MapReduce编程的不便性 2)HDFS上的文件缺少Schema 二、什么是Hive Hive是构建在Hadoop上的数据仓库,最初用于解决海量结构化的日志数据统计问题 官网解释: The Apache Hive ™ data warehouse software facilitates reading, writing, and managing l...

qq_35522637的博客 1526

保姆级YOLOv8改进 | 基于DWRSeg扩张式残差机制的小目标检测优化(附修改后的C2f与Bottleneck模块)

DWRSeg机制:通过动态权重调整和扩张卷积有效提升了小目标的检测能力。C2f和Bottleneck模块修改:通过集成DWRSeg模块,增强了特征提取和残差学习能力。实验结果:在多个应用场景中,改进后的YOLOv8展现了更高的检测精度,特别是在小目标检测中表现突出。

一键难忘的博客 3217

hive使用心得

最近使用hive一个多月下来(终于完成第一期数据分析迁移工作了),当时使用的0.8的版本(现在最新版本是0.8.1),一个多月下来收获很多。从安装环境、 调试、开发、业务理解、技术攻关、业务实现等,一一都体验了一把! 总的来说,除了目前网上所介绍的常规hive使用和优化外。 因为目前hive只支持0.20的相关版本,所以我们的环境还是使用的0.20版本的hadoop来进行搭建。 使用hiv

分布式应用与服务器架构专栏 2万+

深度学习笔记——前向传播与反向传播、神经网络(前馈神经网络与反馈神经网络)、常见算法概要汇总

本文简要介绍深度学习的前向传播与反向传播,以及前馈神经网络与反馈神经网络。

haopinglianlian的博客 3043

Android Keymaster- 设备集成笔记 嵌入式

本文介绍了 Android Keymaster 的原理、使用方法和示例源代码。Android Keymaster 是一个重要的安全组件,为开发者提供了加密和解密功能,用于保护设备上存储的敏感数据。Android Keymaster 是 Android 系统的一个安全组件,用于保护设备上存储的敏感数据。Keymaster 使用基于硬件的密钥存储,同时提供了一组 API,让开发者可以在应用程序中使用这些加密功能。在嵌入式设备中,Android Keymaster 是一个重要的组件,用于提供加密和解密功能。

LrFortran的博客 671

山大软工实践hive(11)-ConstantPropagate优化器的流程

2021SC@SDUSC

meloneatingguy的博客 367

山羚羊优化算法(MGO)详解:从自然智慧到优化引擎

山羚羊优化算法(MGO)是一种新型元启发式算法,灵感来源于山羚羊的社会行为和等级制度。该算法模拟了四种核心行为:领地独居雄性(局部开发)、母系山瞪羚群(群体协作)、单身雄性山瞪羚(全局探索)和迁徙觅食(动态扰动)。MGO通过数学建模将这些生物行为转化为优化机制,在探索与开发间实现平衡。算法已成功应用于函数优化、无人机路径规划和支持向量机优化等领域,展现出优异的性能。未来研究将聚焦于参数自适应调整、混合算法设计等方向,以进一步提升算法性能。

qq_42212808的博客 204

山大软工实践hive(6)-逻辑优化(2)

2021SC@SDUSC 山大软工实践(6)-逻辑优化(2) 文章目录山大软工实践(6)-逻辑优化(2)接着上一次GroupBy预聚合数据倾斜处理关于预聚合能否用于处理数据倾斜join优化数据倾斜处理源码分析部分参考 接着上一次 各种优化有相关的配置文件 GroupBy 预聚合 在map端使用combiner预聚合数据以减少shuffle数据量,这对大量数据处理有帮助 数据倾斜处理 为防止大量数据的key相同导致分配任务时的数据倾斜,两阶段聚合数据 原理是启动两个MapReduce任务,第一个任务mappe

meloneatingguy的博客 1291

HDR 成像技术学习(三)—— LOFIC

LOFIC(Lateral Overflow Integration Capacitor,横向溢出集合电容)介绍,从像素结构到工作时序。

沧海一升的博客 9729

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

山大软工实践hive(7)-查看各优化器内容

2021SC@SDUSC 山大软工实践hive(7)-查看各优化器内容 文章目录山大软工实践hive(7)-查看各优化器内容ConstantPropagate PointLookupOptimizer PartitionColumnsSeparator ConstantPropagate 这个意外地眼熟,对应的是常量折叠3种的逻辑优化(在第5篇提到),能看出它的优化形式是从根节点遍历DAG ...

meloneatingguy的博客 1554

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

山大软工实践hive(9)-dispatch关于minCost的计算

2021SC@SDUSC 山大软工实践hive(9)-dispatch关于minCost的计算 文章目录山大软工实践hive(9)-dispatch关于minCost的计算从DefaultRuleDispatcher开始以上内容的总结接下来 上一节说到要去看dispatcher,并已经梳理了大致步骤,现在要去理解。 从初始化看是DefaultRuleDispatcher 从DefaultRuleDispatcher开始 追踪dispatcher.dispatch(nd, ndStack, nodeOutp

meloneatingguy的博客 790

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

山大软工实践hive(10)-transform方法流程结束

2021SC@SDUSC 山大软工实践hive(10)- dispatch方法的后半部分 在我查看的这个优化器的transform方法里,defaultProc是null,不过这里rule多半不是null,如下 proCtx为null proc在这里只能取到FilterTransformer,它是该优化器的内部类 然后下下它调用了该类的process方法 可以看到除了nd其他都没有被使用 这个方法里要先解决这些标记荧光的地方是干什么的 继承了Node,可以看做是Node的扩展。里面的重点变量是 Ty

meloneatingguy的博客 1216

山大软工实践hive(4)-join算子

2021SC@SDUSC 标题 文章目录标题杂碎common joinMap joinBucketMapJoinSMB joinSkew Join参考 杂碎 hive支持等值join,但不支持非等值join,也就是涉及<>的比较在join后进行 common join 在Mapper阶段读取表的数据转换为键值对,经过shuffle让有相应key的输出到相应Reducer 在JoinOperator process方法中 // The input is sorted by alias

meloneatingguy的博客 300

山大软工实践hive(13)-查看逻辑优化在总体流程上的位置

2021SC@SDUSC 查看逻辑优化在总体流程上的位置

meloneatingguy的博客 1497

山大软工实践hive(3)-算子做了什么

2021SC@SDUSC 标题 目标 上一篇初步知道算子是什么,这一篇需要深入了解。 各算子 TS 扫描表以获取数据,但实际是Hadoop完成的表数据读取,该算子的作用是把从底层获取的数据传输给子节点处理 SEL 用于投影操作,对应select语句 FIL 用于投影,对应sql 的where语句 RS mapReduce中间有个shuffle过程,实现map结果到reduce任务的映射采集,而RS算子实现了类似shuffle的功能,包括了数据采集(运用hash算法把数据分配给不同的reduce任务),排序方

meloneatingguy的博客 203

山大软工实践hive(8)-DefaultWalker的starkWalking方法以及ForwardWalker的walk方法

2021SC@SDUSC 山大软工实践hive(8)-DefaultWalker的starkWalking方法以及ForwardWalker的walk方法 文章目录山大软工实践hive(8)-DefaultWalker的starkWalking方法以及ForwardWalker的walk方法接着上一次starkWalking总的顺序是:ForwardWalker的walk两种walk的区别找寻opstack的踪迹(结果是没被dispatcher改动)接下来 接着上一次starkWalking 看startw

meloneatingguy的博客 973

山大软工实践hive(5)-逻辑优化(1)

2021SC@SDUSC 逻辑优化 逻辑优化,顾名思义,就是通过调整语句的执行顺序,或者优化语句,减少时间、内存上的开销。许多思路与普通数据库的查询优化一样。根据这一阶段输入输出都是DAG,可以认为是用过调整DAG的结构达到目的。 几种方式 参考他人博客有以下几种方式 谓词下推 让选择运算优先执行,比如 select 1 from a join b on a.id=b.id where a.id=5 and b.id>10,会优先执行a.id=5与b.id>10,然后再进行join操作,因为jo

meloneatingguy的博客 881

山大软工实践hive(12)-逻辑优化过程中的六种基础接口的作用与关系的梳理

2021SC@SDUSC 逻辑优化过程中的六种基础接口的梳理 Node,Rule,GraphWalker,Dispatcher,NodepPocessor,NodepPocessorCtx

meloneatingguy的博客 1563

山大软工实践hive(1)-配置,规划

2021SC@SDUSC 山大2019级软件工程应用与实践-hive(0)配置,分工 配置 虚拟机:CentOS+VMware WorkStation

meloneatingguy的博客 177

山大软工实践hive(2)-解析输入(OPTree是什么)

2021SC@SDUSC 魔鬼博客1,4推理 源码operator执行顺序分析 序列化反序列化 transient “Hive的本质是一条SQL生成的一系列Operators,并执行它们 每个Operators的原理和适应条件,决定查询的性能 这里的代码是” ...

meloneatingguy的博客 394
上一篇: 山大软工实践hive(13)-查看逻辑优化在总体流程上的位置
下一篇: 秋招准备--java
meloneatingguy
博客等级 码龄7年 1粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值