首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Hive篇---Hive使用优化

一.前述 本节主要描述Hive优化使用,Hive优化着重强调一个 把Hive SQL 当做Mapreduce程序去优化 二.主要优化点 1.Hive运行方式: 本地模式 集群模式 本地模式 开启本地模式...: set hive.exec.mode.local.auto=true; 注意: hive.exec.mode.local.auto.inputbytes.max默认值为128M 表示加载文件的最大值...对于小表可以直接从从hdfs直接拿到本地计算 2.并行计算 通过设置以下参数开启并行模式: set hive.exec.parallel=true; 注意:hive.exec.parallel.thread.number...5 Hive Join 优化 Join计算时,将小表(驱动表)放在join的左边 Map Join:在Map端完成Join 两种实现方式: 1、SQL方式,在SQL语句中添加MapJoin标记(mapjoin...: map端做聚合操作是hash表的最大可用内容,大于该值则会触发flush hive.groupby.skewindata 是否对GroupBy产生的数据倾斜做优化,默认为false(自动优化解决思路如下

3.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Hive Join优化

    在阐述Hive Join具体的优化方法之前,首先看一下Hive Join的几个重要特点,在实际使用时也可以利用下列特点做相应优化: 1.只支持等值连接 2.底层会将写的HQL语句转换为MapReduce...,并且reduce会将join语句中除最后一个表外都缓存起来 3.当三个或多个以上的表进行join操作时,如果每个on使用相同的字段连接时只会产生一个mapreduce 具体的优化建议: 1.合理的设置...设置方式主要分两种: 1)自动方式 set hive.auto.convert.join=true; hive.mapjoin.smalltable.filesize,设置可以mapjoin的表的大小,...任务重需要执行insert overwrite table t_y select * from t_x;和 insert overwrite table t_z select * from t_x; 可以优化成...这种优化方式存在一个缺点:有可能部分数据永远不会被处理到

    1.1K11

    Hive高级优化

    1,FetchTask 不执行mapreduce,提高速度 设置的三种方式: 方法一: set hive.fetch.task.conversion=more; 方法二: bin/hive --hiveconf...hive.fetch.task.conversion=more 方法三: 上面的两种方法都可以开启了Fetch任务,但是都是临时起作用的;如果你想一直启用这个功能,可以在${HIVE_HOME}/conf.../hive-site.xml hive.fetch.task.conversion minimal <description...从这个案例可以看出,对mapred.map.tasks进行自动化的优化设置其实是可以很明显地提高作业执行效率的。 要求:文件数据压缩的方式为可分割的,比如BZip2Codec。...8//job并行执行的数目,一个SQL语句可能有很多mapreduce任务,限制hive.exec.parallel false hive执行开启: set hive.exec.parallel=true

    1.4K81

    (六)Hive优化

    ,但是sql优化确实很关键。。。...在Hive 1.1.0之后,这个feature是默认开启的,它可以自动优化HQL中多个JOIN的顺序,并 选择合适的JOIN算法. Hive在提交最终执行前,优化每个查询的执行逻辑和物理执行计划。...这些优化工作是交给底层来完成。 根据查询成本执行进一步的优化,从而产生潜在的不同决策:如何排序连接,执行哪种类型的连接,并行度等等。...要使用基于成本的优化(也称为CBO),请在查询开始处设置以下参数: 设置hive.cbo.enable = true; 设置hive.compute.query.using.stats = true;...set hive.optimize.index.filter=true;--自动使用索引,使用聚合索引优化group by操作,如果是orc表,可以使用orc的索引,加快读取hive表的数据 set

    2.2K10

    Hive Join优化

    在阐述Hive Join具体的优化方法之前,首先看一下Hive Join的几个重要特点,在实际使用时也可以利用下列特点做相应优化: 1.只支持等值连接 2.底层会将写的HQL语句转换为MapReduce...,并且reduce会将join语句中除最后一个表外都缓存起来 3.当三个或多个以上的表进行join操作时,如果每个on使用相同的字段连接时只会产生一个mapreduce 具体的优化建议: 1.合理的设置...设置方式主要分两种: 1)自动方式 set hive.auto.convert.join=true; hive.mapjoin.smalltable.filesize,设置可以mapjoin的表的大小,...任务重需要执行insert overwrite table t_y select * from t_x;和 insert overwrite table t_z select * from t_x; 可以优化成...这种优化方式存在一个缺点:有可能部分数据永远不会被处理到

    2.2K20

    Hive的常用优化

    的,合并 这样就会先合并小文件,然后再启动 MapReduce 了 场景3 任务 reduce 普遍运行缓慢,迟迟没有运行完,那么需要合理调整 reduce 数量 如果不调整,hive 会自动帮你确定...mapred.reduce.tasks=15; 当然 reduce 也不是越多越好,reduce 太多可能会产生非常多的小文件,增加 namenode 压力,执行 MapReduce 任务也会产生很多的map任务 三、小文件合并优化...--设置map端输出进行合并,默认为true set hive.merge.mapfiles = true--设置reduce端输出进行合并,默认为false set hive.merge.mapredfiles...能用一个 sql 写完,绝不用临时表 (4)hive 可以自动把 union all 优化成一个 jon,但尽量不要再 union all 中写 group by 和 join,可以做一个临时表。...= true;默认为trueset hive.mapjoin.smalltable.filesize=25000000; (4)使用 hive 自动的数据倾斜优化 set hive.groupby.skewindata

    1.3K31

    Hive Count Distinct优化

    未经优化的SQL语句转化后的MapReduce作业,它的运行效率可能大大低于用户的预期。本文我们就来分析一个简单语句的优化过程。...还对这两阶段的作业做了额外的优化。...这一优化大幅地减少了第一个作业的Reduce输出IO以及第二个作业Map的输入数据量。最终在同样的运行环境下优化后的语句执行只需要原语句20%左右的时间。优化后的MapReduce作业流如下: ?...从上述优化过程我们可以看出,一个简单的统计需求,如果不理解Hive和MapReduce的工作原理,它可能会比优化后的执行过程多四、五倍的时间。...我们在利用Hive简化开发的同时,也要尽可能优化SQL语句,提升计算作业的执行效率。 注:文中测试环境Hive版本为0.9

    3.5K31

    Hive CBO优化剖析

    基于Operator转为Task,基于物理计划树(算子树) 实现物理优化 CBO优化 实现原理 Hive使用HiveVolcanoPlanner 继承原生的Calcite VolcanoPlanner...转换RelNode为Hive优化后的ASTNode,基于优化后的ASTNode生成Hive逻辑算子树Operator,并执行后续解析操作。...Hive基于CBO优化的解析数据对象流转如下所示: Hive CBO实现内核:在QB转Operator逻辑计划时进行扩展处理,QB → Calcite CBO优化 → Operator。...但Hive作为SQL on Hadoop的事实标准却一直影响着大数据SQL发展,且企业大量的存量业务都以Hive SQL构建。 本文通过背景介绍、解析流程、CBO优化三部分详述Hive CBO原理。...Hive SQL核心解析流程包括解析、语义分析、逻辑优化、物理优化步骤。

    49362

    Hivehive 数据倾斜、优化策略、hive执行过程、垃圾回收

    /提示优化器转化为map join(早期的 Hive 版本的优化器是不能自动优化 map join 的)。...2.3 优化器类型 上表中带①符号的,优化目的都是尽量将任务合并到一个 Job 中,以减少 Job 数量,带②的优化目的是尽量减少 shuffle 数据量 2.4 hive查看执行过程 explain...然后会再按照 age 进行分组,再进行一次 distinct 操作 3. hive 优化策略 3.1 Hadoop框架计算特性 数据量大不是问题,数据倾斜是个问题 Jobs 数比较多的作业运行效率相对比较低...这是通用的算法优化,但算法优化有时不能适应特定业务背景,开发人员了解业务,了解数据,可以通过业务逻辑精确有效的解决数据倾斜问题 数据量较大的情况下,慎用 count(distinct),group by...】hive 数据倾斜、优化策略、hive执行过程、垃圾回收 本文为从大数据到人工智能博主「bajiebajie2333」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明

    1.6K22

    Hive重点难点:Hive原理&优化&面试

    - Hive执行计划 - Hive SQL的执行计划描述SQL实际执行的整体轮廓,通过执行计划能了解SQL程序在转换成相应计算引擎的执行逻辑,掌握了执行逻辑也就能更好地把握程序出现的瓶颈点,从而能够实现更有针对性的优化...从 Hive 2.3.0 开始支持; explain analyze:用实际的行数注释计划。从 Hive 2.2.0 开始支持; explain cbo:输出由Calcite优化器生成的计划。...说明 hive 底层会自动帮我们进行优化,所以这两条sql语句执行效率是一样的。...在Hive 0.11版本及之后,Hive默认启动该优化,也就是不在需要显示的使用MAPJOIN标记,其会在必要的时候触发该优化操作将普通JOIN转换成MapJoin,可以通过以下两个属性来设置该优化的触发时机...: hive.auto.convert.join=true 默认值为true,自动开启MAPJOIN优化

    1.3K10

    Hive重点难点:Hive原理&优化&面试(下)

    Hive重点难点:Hive原理&优化&面试(上)》 Hive计算引擎 目前Hive支持MapReduce、Tez和Spark 三种计算引擎。...企业级性能优化 Hive性能问题排查的方式 当我们发现一条SQL语句执行时间过长或者不合理时,我们就要考虑对SQL进行优化优化首先得进行问题排查,那么我们可以通过哪些方式进行排查呢。...Hive性能调优的方式 为什么都说性能优化这项工作是比较难的,因为一项技术的优化,必然是一项综合性的工作,它是多门技术的结合。我们如果只局限于一种技术,那么肯定做不好优化的。...最新的Hive 3.0中新增了 count(distinct ) 优化,通过配置 hive.optimize.countdistinct,即使真的出现数据倾斜也可以自动优化,自动改变SQL执行的逻辑。...ORC优化是对RCFile的一种优化,它提供了一种高效的方式来存储Hive数据,同时也能够提高Hive的读取、写入和处理数据的性能,能够兼容多种计算引擎。

    1.5K21
    领券