HIVE调优MapJoin

HIVE调优MapJoin

目录

HIVE调优MapJoin

1.mapjoin (1.2以后自动默认启动mapjoin)          

2.创建表格

3.查询建表

4.通过 explain 展示执行计划

5.Map JOIN 相关设置:


1.mapjoin (1.2以后自动默认启动mapjoin)
          

select /*+mapjoin(b)*/ a.xx,b.xxx from a left outer join b on a.id=b.id

2.创建表格


CREATE EXTERNAL TABLE IF NOT EXISTS learn4.student1(
id STRING COMMENT "学生ID",
name STRING COMMENT "学生姓名",
age int COMMENT "年龄",
gender STRING COMMENT "性别",
clazz STRING COMMENT "班级"
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ",";load data local inpath "/usr/local/soft/hive-3.1.2/data/students.txt" INTO TABLE learn4.student1;CREATE EXTERNAL TABLE IF NOT EXISTS learn4.score1(
id STRING COMMENT "学生ID",
subject_id STRING COMMENT "科目ID",
score int COMMENT "成绩"
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ",";
load data local inpath "/usr/local/soft/hive-3.1.2/data/score.txt" INTO TABLE learn4.score1;

3.查询建表


CREATE TABLE mapJonTest AS SELECT max.name,min.subject_id,min.score FROM learn4.student1 max JOIN learn4.score1 min ON max.id = min.id;

建表所需时间:


INFO  : Total MapReduce CPU Time Spent: 2 seconds 510 msec
INFO  : Completed executing command(queryId=root_20240511090524_3a34bdda-4247-4af4-b686-d681856af110); Time taken: 19.199 seconds
INFO  : OK
INFO  : Concurrency mode is disabled, not creating a lock manager
No rows affected (20.707 seconds)
 

4.通过 explain 展示执行计划

explain SELECT max.name,min.subject_id,min.score FROM learn4.student1 max JOIN learn4.score1 min ON max.id = min.id;查看详细信息:explain extended SELECT max.name,min.subject_id,min.score FROM learn4.student1 max JOIN learn4.score1 min ON max.id = min.id;


| STAGE DEPENDENCIES:                                |  -- 执行stage的依赖
|   Stage-4 is a root stage                          |     Stage-4 表示根流程 --表示最先执行的流程
|   Stage-3 depends on stages: Stage-4               |     Stage-3 依赖 Stage-4
|   Stage-0 depends on stages: Stage-3               |     Stage-0 依赖 Stage-3 依赖 Stage-4
|                                                    |
| STAGE PLANS:                                       |
|   Stage: Stage-4                                   |
|     Map Reduce Local Work                          |
|       Alias -> Map Local Tables:                   |
|         $hdt$_1:min                                |
|           Fetch Operator                           |
|             limit: -1                              |
|       Alias -> Map Local Operator Tree:            |
|         $hdt$_1:min                                |
|           TableScan                                |    TableScan  扫描的表
|             alias: min                             |
|             Statistics: Num rows: 1 Data size: 1385400 Basic stats: COMPLETE Column stats: NONE |
|             Filter Operator                        |
|               predicate: id is not null (type: boolean) |
|               Statistics: Num rows: 1 Data size: 1385400 Basic stats: COMPLETE Column stats: NONE |
|               Select Operator                      |
|                 expressions: id (type: string), subject_id (type: string), score (type: int) |
|                 outputColumnNames: _col0, _col1, _col2 |
|                 Statistics: Num rows: 1 Data size: 1385400 Basic stats: COMPLETE Column stats: NONE |
|                 HashTable Sink Operator            |
|                   keys:                            |
|                     0 _col0 (type: string)         |
|                     1 _col0 (type: string)         |
|                                                    |
|   Stage: Stage-3                                   |
|     Map Reduce                                     |
|       Map Operator Tree:                           |
|           TableScan                                |
|             alias: max                             |
|             Statistics: Num rows: 1 Data size: 388080000 Basic stats: COMPLETE Column stats: NONE |
|             Filter Operator                        |
|               predicate: id is not null (type: boolean) |
|               Statistics: Num rows: 1 Data size: 388080000 Basic stats: COMPLETE Column stats: NONE |
|               Select Operator                      |
|                 expressions: id (type: string), name (type: string) |
|                 outputColumnNames: _col0, _col1    |
|                 Statistics: Num rows: 1 Data size: 388080000 Basic stats: COMPLETE Column stats: NONE |
|                 Map Join Operator                  |   -- 不需要做任何操作 默认开启 Map JOIN 操作
|                   condition map:                   |
|                        Inner Join 0 to 1           |
|                   keys:                            |
|                     0 _col0 (type: string)         |
|                     1 _col0 (type: string)         |
|                   outputColumnNames: _col1, _col3, _col4 |
|                   Statistics: Num rows: 1 Data size: 426888009 Basic stats: COMPLETE Column stats: NONE |
|                   Select Operator                  |
|                     expressions: _col1 (type: string), _col3 (type: string), _col4 (type: int) |
|                     outputColumnNames: _col0, _col1, _col2 |
|                     Statistics: Num rows: 1 Data size: 426888009 Basic stats: COMPLETE Column stats: NONE |
|                     File Output Operator           |
|                       compressed: false            |
|                       Statistics: Num rows: 1 Data size: 426888009 Basic stats: COMPLETE Column stats: NONE |
|                       table:                       |
|                           input format: org.apache.hadoop.mapred.SequenceFileInputFormat |
|                           output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat |
|                           serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe |
|       Execution mode: vectorized                   |
|       Local Work:                                  |
|         Map Reduce Local Work                      |
|                                                    |
|   Stage: Stage-0                                   |
|     Fetch Operator                                 |
|       limit: -1                                    |
|       Processor Tree:                              |
|         ListSink                                   |

5.Map JOIN 相关设置:


1)设置自动选择Mapjoin
 

set hive.auto.convert.join = true; 默认为trueset hive.auto.convert.join = false; 默认为true


2)大表小表的阈值设置(默认25M以下认为是小表):

set hive.mapjoin.smalltable.filesize = 25000000;set hive.mapjoin.smalltable.filesize = 10000000;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/690967.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

08.3.grafana自定义图形

grafana自定义图形 找插件里面的zabbix 点击update 数据源—zabbix数据源,添加zabbix数据源 选择zabbix类型 我这里配置的是本地,所以URL直接localhost 这里配置zabbix登录账号密码Admin/zabbix 然后点击保存并测试,会直接显示版本 导入模板&…

2024年数维杯数学建模

高质量原创论文已完成 需要的私我

【软考高项】四十四、高级项目管理

一、项目集管理 相关角色 项目集发起人、项目集指导委员会、项目集经理、其他影响项目集的干系人项目集管理绩效域 项目集战略一致性、项目集效益管理、项目集干系人参与、项目集治理和项目集生命周期管理 二、项目组合管理 项目组合经理角色 项目组合管理原…

【深度学习】Diffusion扩散模型的逆扩散问题

1、前言 上一篇,我们讲了Diffusion这个模型的原理推导。但在推导中,仍然遗留了一些问题。本文将解决那些问题 参考论文: ①Variational Diffusion Models (arxiv.org) ②Tutorial on Diffusion Models for Imaging and Vision (arxiv.org…

Mysql数据库的基础学习

为什么使用数据库? 1.持久化:将数据保存到可掉电式存储设备中以供使用。 数据库相关概念: DB:数据库(Databass)即存储数据的仓库,本质是一个文件系统,保存了一系列有组织的数据DBMS:数据库管…

PyCharm2024安装教程

PyCharm是一款功能强大的Python集成开发环境(IDE),它提供了许多工具和功能来帮助开发者编写、调试和测试Python代码。以下是使用PyCharm的基本步骤: 安装PyCharm:首先,你需要从JetBrains官方网站下载并安装…

matlab——基于RANSAC和TLS的点云平面拟合

目录 一、算法原理1、论文概述2、参考文献二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的GPT爬虫。 一、算法原理 1、论文概述 针对点云平面拟合过程中出现的异常值及误差的问题,提出一种将随机采样…

Ubuntu 和 Windows之间无法复制粘贴问题解决方法

需要安装open-vm-tools,官方安装open-vm-tools的网址:安装 Open VM Tools (vmware.com)

记录一次接口优化的过程。接口响应时间从500s下降到5s。

记录一次接口优化的过程。接口响应时间从500s下降到5s。 接口说明: 该接口通过用户导入的一年内每天的厂区用电功率数据来计算用户安装储能设备后的收益情况。 用电功率数据具体为每15分钟一条,一年约有 12*30*24*4 34560 条。 代码循环情况为&…

✨✨使用vue3打造一个el-form表单及高德地图的关联组件实例✨

✨1. 实现功能 🌟表单内显示省市县以及详细地址 点击省市县输入框时,打开对应地图弹窗,进行位置选择选择位置回显入对应输入框表单内的省市县以及地址输入框同外嵌表单走相同的校验方式触发校验后点击reset实现清除校验与清空数据 &#x1f…

HarmonyOS NEXT星河版之模拟图片选择器(下)---使用Swiper实现图片滑动预览

文章目录 一、目标二、开撸2.1 改造图片预览Dialog2.2 改造主页面2.3 主页面完整代码 三、小结 一、目标 在前面的介绍中,查看选中的图片都是单张预览,接下来要改造成多张可滑动预览,如下: 二、开撸 2.1 改造图片预览Dialog …

事务的基础

📝个人主页:五敷有你 🔥系列专栏:面经 ⛺️稳中求进,晒太阳 事务的基础 1)事务 事务是:一组操作的集合 ,他是不可分割的工作单位。事务会把所有操作作为一个整体一起向系统提…