HIVE语法优化之Join优化

这篇具有很好参考价值的文章主要介绍了HIVE语法优化之Join优化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

桶用两表关联字段,MapJoin时需要将小表填入内存,这时候,分桶就起到了作用
一个stage阶段代表一个mr执行,好几个MR,会吧每一个MR的结果都压缩

Mysql 慢查询
如果sql语句执行超过指定时间,定义该sql为慢查询,存储日志,
查问题: SQL日志,模拟慢SQL 然后查询执行计划

分组聚合
就是在Map后直接对他进行聚合,而不是在reduce时聚合
HIVE语法优化之Join优化,hive,大数据,hive,hadoop,数据仓库
默认开启map端聚合
前提条件:
抽样校验 看样品聚合率是否达到要求,将数据会拿到内存聚合,
如果达不到要求,就不继续聚合,然后最后的比例,聚合
最后这个参数有疑问
给聚合留的内存的百分比

Join优化
Reduce Join
优点:使用范围广
缺点:性能慢
最稳定的,但是性能是最慢的
注意. 读表的时候也不一定是一个maptask完成,多个一起,加快速度
HIVE语法优化之Join优化,hive,大数据,hive,hadoop,数据仓库

map 负责读数据 资源整合 key关联字段 v Bean
根据数据来源区分,
如果关联字段相同, Bean添加即可 1个
因为是按Key分组
所以不是一个JOIN语句必须对应一个Common Join

Map Join
特点:针对Common join的优化
使用前提:一张大表与一张小表
概况: job1:小表制作为hash table 上传分布式缓存.(因为分布式,都在内存中找数据)
job2:从缓存中读取小表数据,缓存在Map Task中,扫描大表.
思考:为什么需要大表对小表? 小表缓存快, 其实大表可以分成小表,分部加载即可
优点:
缺点:
HIVE语法优化之Join优化,hive,大数据,hive,hadoop,数据仓库

HIVE语法优化之Join优化,hive,大数据,hive,hadoop,数据仓库

Bucket Map join
将大表进行分割成小表
注意:如果2个都是分桶表,且关联是分桶字段,一张的分桶数量是另一张的整数倍。就能保证join的分桶有明确的关联
HIVE语法优化之Join优化,hive,大数据,hive,hadoop,数据仓库
因为都是哈希,所以相等或者倍数关系对应是比较符合的
这时候缓存的是桶比较少的表
mapper个数对应桶的最多数。
为什么这么对应?
这样mapper多,快 ,而且占用内存小
HIVE语法优化之Join优化,hive,大数据,hive,hadoop,数据仓库

Sort Merge Bucket Map Join
HIVE语法优化之Join优化,hive,大数据,hive,hadoop,数据仓库
比桶Map join多一个排序
HASH join 是什么?

排序后的表为什么快
不排序的话,join时每次比对都需要整表比对
HIVE语法优化之Join优化,hive,大数据,hive,hadoop,数据仓库
HIVE语法优化之Join优化,hive,大数据,hive,hadoop,数据仓库
这个数据不需要进入内存加载,直接在磁盘进行操作了,因为他是顺序读取,效率也很高,不需要加入内存读取来提高效率.
节省内存

1.什么时候不知道表大小 子查询
2.对未知大小的表如何map join选择存储的表
HIVE语法优化之Join优化,hive,大数据,hive,hadoop,数据仓库
HIVE语法优化之Join优化,hive,大数据,hive,hadoop,数据仓库
为什么3个?按理说不是2个么

全连接需要全扫描
left right 都只需要大表扫描 , 这里也 是问题 为什么 部分不用全表扫描

都未知走全部,其实就是搜索
大表候选人大小均已知,

最优map join 计划
多表(结合)

HIVE语法优化之Join优化,hive,大数据,hive,hadoop,数据仓库
第一次判断,是判断大小第一次

HIVE语法优化之Join优化,hive,大数据,hive,hadoop,数据仓库
不理解
哪来2个job

CBO 代价优化 忽略mapjoin

Sort Merge Bucket Map join
问题:分桶表的插入等会看一下
只跑了一个job
为什么?

HIVE语法优化之Join优化,hive,大数据,hive,hadoop,数据仓库
假设abc 三个表
a为主表 b c 为小表
m c 就是子任务 ,那么,子任务是map join么? c小于size
然后b+c 小于size 就说明 6成立 所以就是一个子任务 那么 map join 和子任务map join合并一个任务
就是一直重复
4->a+ n(子表的其中一个)->5 /8
其实就是
主表和小表,一个一个去结合判断,走流程

HIVE语法优化之Join优化,hive,大数据,hive,hadoop,数据仓库文章来源地址https://www.toymoban.com/news/detail-637319.html

到了这里,关于HIVE语法优化之Join优化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • hive企业级调优策略之Join优化

    原文链接:https://blog.csdn.net/m0_52606060/article/details/135080511 本教程的计算环境为Hive on MR。计算资源的调整主要包括Yarn和MR。 Join算法概述 Hive拥有多种join算法,包括Common Join,Map Join,Bucket Map Join,Sort Merge Buckt Map Join等,下面对每种join算法做简要说明: Common Join Common Join是Hiv

    2024年01月16日
    浏览(38)
  • 【Hive_05】企业调优1(资源配置、explain、join优化)

    关于调优,重要的是理解每一个优化手段的思路。理解优化需要配置的每个参数的实际作用。 计算环境为Hive on MR。计算资源的调整主要包括Yarn和MR。 1)Yarn配置说明 需要调整的Yarn参数均与CPU、内存等资源有关,核心配置参数如下 (1)yarn.nodemanager.resource.memory-mb 该参数的含

    2024年01月22日
    浏览(32)
  • 【Hadoop】-Apache Hive使用语法与概念原理[15]

    创建数据库 create database if not exists myhive; 使用数据库 use myhive; 查看数据库详细信息 desc database myhive; 数据库本质上就是在HDFS之上的文件夹。 默认数据库的存放路径是HDFS的: /user/hive/warehouse内 创建数据库并指定hdfs存储位置 create database myhive2 location \\\'/myhive2\\\'; 使用location

    2024年04月28日
    浏览(21)
  • Hive SQL 优化大全(参数配置、语法优化)

    服务器环境说明 机器名称 内网IP 内存 CPU 承载服务 master 192.168.10.10 8 4 NodeManager、DataNode、NameNode、JobHistoryServer、Hive、HiveServer2、MySQL slave1 192.168.10.11 8 4 NodeManager、DataNode、ResourceManager slave2 192.168.10.12 8 4 NodeManager、DataNode、SecondaryNameNode 操作系统均为: CentOS 7.5 组件版本 jdk 1

    2024年02月10日
    浏览(33)
  • Hadoop、Spark和Hive调优优化原理

    作者:禅与计算机程序设计艺术 随着互联网和大数据的普及以及处理器性能的提升,当时的技术已经远远超过了当时能够想象的范围。这段时间MapReduce计算框架已经成为一个主流的开源计算框架,包括Hadoop、Pig、Hive、Mahout、Storm等。 2010年Apache Spark横空出世,基于内存计算框

    2024年02月06日
    浏览(31)
  • 【大数据Hive】hive select 语法使用详解

    目录 一、前言 二、Hive select 完整语法树 三、Hive select 操作演示 3.1 数据准备

    2024年02月08日
    浏览(31)
  • Hive数据仓库---Hive的安装与配置

    Hive 官网地址:https://hive.apache.org/ 下载地址:http://www.apache.org/dyn/closer.cgi/hive/ 把安装文件apache-hive-3.1.2-bin.tar.gz上传到master节点的/opt/software目 录下,执行以下命令把安装文件解压到/opt/app目录中 进入/opt/app目录,为目录apache-hive-3.1.2-bin建立软件链接 即输入hive就相当于输入a

    2024年02月02日
    浏览(31)
  • 大数据-hive基本语法整理

    一、hive建表语句 语法解析: partitioned by (hdfs_date_dt STRING) –使用字符串类型字段hdfs_date_dt作为分区键 row format serde ‘org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe’ with serdeproperties (“field.delim” = “|@|” ) –指定行格式和序列化/反序列化方式,设置字段分隔符为\\\"|@|\\\" stored as t

    2024年01月25日
    浏览(24)
  • 【hive】简单介绍hive的几种join

    common join 主要是针对数据/业务逻辑的join。 Map join , Bucket Map Join , SMB Map Join , Skew Join 是hive 针对特殊数据、场景 进行的优化。 Left Semi Join 则是 Sql 语句的优化,并且也可以应用上面的优化方案。 如果不指定MapJoin或者不符合MapJoin的条件,那么Hive解析器会将Join操作转换成Comm

    2024年02月12日
    浏览(28)
  • 安装hive数据仓库

    需要安装部署完成的Hadoop的环境如果不会搭建的可以参考: 卸载Centos7自带的mariadb mariadb-libs-5.5.64-1.el7.x86_64是使用 rpm -qa|grep mariadb 查询出来的名称 安装mysql 安装mysql时可能会出现的问题 1、依赖检测失败 问题很明显了就是依赖的问题,下载他说的依赖就好了 安装hive 上传并且

    2024年02月14日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包