- 博客(15)
- 收藏
- 关注
原创 山大软工实践hive(12)-逻辑优化过程中的六种基础接口的作用与关系的梳理
2021SC@SDUSC逻辑优化过程中的六种基础接口的梳理Node,Rule,GraphWalker,Dispatcher,NodepPocessor,NodepPocessorCtx
2021-12-12 15:00:28
1490
原创 山大软工实践hive(10)-transform方法流程结束
2021SC@SDUSC山大软工实践hive(10)-dispatch方法的后半部分在我查看的这个优化器的transform方法里,defaultProc是null,不过这里rule多半不是null,如下proCtx为nullproc在这里只能取到FilterTransformer,它是该优化器的内部类然后下下它调用了该类的process方法可以看到除了nd其他都没有被使用这个方法里要先解决这些标记荧光的地方是干什么的继承了Node,可以看做是Node的扩展。里面的重点变量是 Ty
2021-11-28 17:29:37
1166
原创 山大软工实践hive(9)-dispatch关于minCost的计算
2021SC@SDUSC山大软工实践hive(9)-dispatch关于minCost的计算文章目录山大软工实践hive(9)-dispatch关于minCost的计算从DefaultRuleDispatcher开始以上内容的总结接下来上一节说到要去看dispatcher,并已经梳理了大致步骤,现在要去理解。从初始化看是DefaultRuleDispatcher从DefaultRuleDispatcher开始追踪dispatcher.dispatch(nd, ndStack, nodeOutp
2021-11-21 16:38:08
745
原创 山大软工实践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
2021-11-14 15:39:55
904
原创 山大软工实践hive(7)-查看各优化器内容
2021SC@SDUSC山大软工实践hive(7)-查看各优化器内容文章目录山大软工实践hive(7)-查看各优化器内容ConstantPropagatePointLookupOptimizerPartitionColumnsSeparatorConstantPropagate这个意外地眼熟,对应的是常量折叠3种的逻辑优化(在第5篇提到),能看出它的优化形式是从根节点遍历DAG...
2021-11-08 18:55:24
1494
原创 山大软工实践hive(6)-逻辑优化(2)
2021SC@SDUSC山大软工实践(6)-逻辑优化(2)文章目录山大软工实践(6)-逻辑优化(2)接着上一次GroupBy预聚合数据倾斜处理关于预聚合能否用于处理数据倾斜join优化数据倾斜处理源码分析部分参考接着上一次各种优化有相关的配置文件GroupBy预聚合在map端使用combiner预聚合数据以减少shuffle数据量,这对大量数据处理有帮助数据倾斜处理为防止大量数据的key相同导致分配任务时的数据倾斜,两阶段聚合数据原理是启动两个MapReduce任务,第一个任务mappe
2021-11-01 14:27:40
1202
原创 山大软工实践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
2021-10-25 19:33:31
779
原创 山大软工实践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
2021-10-18 16:49:24
241
原创 山大软工实践hive(3)-算子做了什么
2021SC@SDUSC标题目标上一篇初步知道算子是什么,这一篇需要深入了解。各算子TS扫描表以获取数据,但实际是Hadoop完成的表数据读取,该算子的作用是把从底层获取的数据传输给子节点处理SEL用于投影操作,对应select语句FIL用于投影,对应sql 的where语句RSmapReduce中间有个shuffle过程,实现map结果到reduce任务的映射采集,而RS算子实现了类似shuffle的功能,包括了数据采集(运用hash算法把数据分配给不同的reduce任务),排序方
2021-10-13 12:25:43
131
原创 山大软工实践hive(2)-解析输入(OPTree是什么)
2021SC@SDUSC魔鬼博客1,4推理源码operator执行顺序分析序列化反序列化 transient“Hive的本质是一条SQL生成的一系列Operators,并执行它们 每个Operators的原理和适应条件,决定查询的性能 这里的代码是”...
2021-10-05 12:20:54
299
原创 山大软工实践hive(1)-配置,规划
2021SC@SDUSC山大2019级软件工程应用与实践-hive(0)配置,分工配置虚拟机:CentOS+VMware WorkStation
2021-09-27 18:25:53
136
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人