• hive的union,hive连接查询的优化,mapjoin的设置参数


    1.union

           union的使用场景

                     当hive使用连接查询时它有一个必要的限制,必须要两个结果集有关系才能进行连接,

                     当两个结果集没有任何关系时可以用union关键字进行两个结果集的集合展示

           union的特性

                      union在查出结果集会对结果集进行排序,这是mapreduce的特性

                      union使用时候可以去重,如果不希望去重可以使用union all,但是union all不排序

                      union使用的前提是每个结果集使用的表头必须是相同的字段

    2.hiveSQL的优化措施

           hive中使用mapjoin提高sql语句的执行效率的原理是:它会把小表全部读入内存中,在map的时候

           直接拿另外一张表的数据和内存中的数据做匹配,进行join操作,这样省去了reduce

          (1)设置参数来优化

                       在同一个sql中的不同job是否可以同时运行,加快SQL执行的速度

                       set hive.exec.parallel=true;

                       增加同一个sql允许并行任务的最大县城数

                       set hive.exec.parallel.thread.number=8;

           (2)用mapjoin的设置参数

                        是否忽略mapjoin标记

                        hive.ignore.mapjoin.hint=true

                        开启自动mapjoin

                        hive.auto.convert.join = true

             (3)mapjoin的配置参数

                       set hive.auto.convert.join=true;    将小表刷入内存中,默认true

                       set hive.ignore.mapjoin.hint=true;   是否忽略mapjoin hint  即mapjoin标记,默认true

                       set hive.mapjoin.smalltable.filesize=2500000;    表示2500000以下的都叫小表

             (4)mapjoin的注意实现

                        left outer join的左边必须是大表

                        right outer join的右表必须是大表

                        inner join左表或右表均可以是大表

                        full outer  join不能使用mapjoin

                        mapjoin支持小表为子查询

                        mapjoin可以使用不等值连接或者使用or连接多个条件

  • 相关阅读:
    解决安装postgresql安装报An error occurred executing the Microsoft C++ runtime installer.问题
    使用U盘为龙芯笔记本安装操作系统
    年终复盘与展望(2017年)
    年终复盘与展望(2016年)
    Spark log4j 配置
    R语言码农的Scala学习心得
    在集群上运行Spark应用
    通过 Spark R 操作 Hive
    CentOS 6.7 hadoop free版本Spark 1.6安装与使用
    OS X Maven 安装与使用简介
  • 原文地址:https://www.cnblogs.com/simpledu/p/14463111.html
Copyright © 2020-2023  润新知