常规调优手段

  • Fetch抓取
    • 某些情况查询不必用MapReduce计算,比如select*,可以直接读取文件
  • 本地模式
    • 有时数据量比较小,hive可以通过本地模式在单台机器上处理所有任务,对于小数据集,执行时间可以被明显缩短。
  • JVM重用  

    • 对于大量小文件,可开启JVM重用,即多个任务共用一个JVM而不用频繁开启和关闭
  • 推测执行
    • 对于一些bug或者资源分配不均等情况拖后腿的MapReduce任务,会推测出这样的任务并且开启备份任务,与该任务处理同一份数据,最终选用快的那个作为结果
  • 严格模式(开启后Hive自动对某些操作做一定的限制,以免过低的查询效率)
    • 开启后where中必须有分区过滤条件,不允许扫描所有分区
    • 使用order by 必须有limit
    • 限制笛卡尔积查询
  • count distinct 用 group by替换
  • 空key过滤(大表join大表)
    • 若空key不需要,则在join之前把空值的key过滤掉
    • 如果空key需要包括在结果集里,则要把它加上一些散列数,分配到不同的reducer中防止数据倾斜
  • join的时候尽量将小表放大表左边(现版本Hive对其进行自动的优化。)

数据倾斜的解决

  • 开启数据倾斜时均衡负载,同一个key分道不同的reduce处理,然后开启第二个MR根据与处理数据结果再按照groupbykey分不到reduce中完成最终的聚合操
  • 合理设置map、reduce个数;小文件合并等常规MR优化
    • 增大map数:减少切片大小
    • 增大reduce个数
      • 1.设置调小每个reduce处理最大数据量/2.增大每个任务最大的reduce个数(reduce个数:N=min(参数2,总数据量/参数1))
      • 直接设置set mapreduce.job.reduces = 15;
  • 开启map端预先聚合,combine
  • 小表存入内存,将reduce join转化为map join
      • 许指定mapjoin参数为true,然后调整小表的阈值让hive自动判断小表情况进行map join转换

大数据框架Hive优化方法的更多相关文章

  1. MySQL大数据量分页查询方法及其优化

    MySQL大数据量分页查询方法及其优化   ---方法1: 直接使用数据库提供的SQL语句---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N---适 ...

  2. MySQL 大数据量快速插入方法和语句优化

    MySQL大数据量快速插入方法和语句优化是本文我们主要要介绍的内容,接下来我们就来一一介绍,希望能够让您有所收获! INSERT语句的速度 插入一个记录需要的时间由下列因素组成,其中的数字表示大约比例 ...

  3. 大数据框架:Spark vs Hadoop vs Storm

    大数据时代,TB级甚至PB级数据已经超过单机尺度的数据处理,分布式处理系统应运而生. 知识预热 「专治不明觉厉」之“大数据”: 大数据生态圈及其技术栈: 关于大数据的四大特征(4V) 海量的数据规模( ...

  4. 大数据框架对比:Hadoop、Storm、Samza、Spark和Flink

    转自:https://www.cnblogs.com/reed/p/7730329.html 今天看到一篇讲得比较清晰的框架对比,这几个框架的选择对于初学分布式运算的人来说确实有点迷茫,相信看完这篇文 ...

  5. 大数据框架对比:Hadoop、Storm、Samza、Spark和Flink——flink支持SQL,待看

    简介 大数据是收集.整理.处理大容量数据集,并从中获得见解所需的非传统战略和技术的总称.虽然处理数据所需的计算能力或存储容量早已超过一台计算机的上限,但这种计算类型的普遍性.规模,以及价值在最近几年才 ...

  6. 大数据平台Hive数据迁移至阿里云ODPS平台流程与问题记录

    一.背景介绍 最近几天,接到公司的一个将当前大数据平台数据全部迁移到阿里云ODPS平台上的任务.而申请的这个ODPS平台是属于政务内网的,因考虑到安全问题当前的大数据平台与阿里云ODPS的网络是不通的 ...

  7. mysql/oracle jdbc大数据量插入优化

    10.10.6  大数据量插入优化 在很多涉及支付和金融相关的系统中,夜间会进行批处理,在批处理的一开始或最后一般需要将数据回库,因为应用和数据库通常部署在不同的服务器,而且应用所在的服务器一般也不会 ...

  8. YARN之上的大数据框架REEF:微软出品,是否值得期待?

    YARN之上的大数据框架REEF:微软出品,是否值得期待?   摘要:微软即将开源大数据框架REEF,REEF运行于Hadoop新一代资源管理器YARN的上层.对于机器学习等在数据传输.任务监控和结果 ...

  9. 老李分享:大数据框架Hadoop和Spark的异同 1

    老李分享:大数据框架Hadoop和Spark的异同   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨 ...

随机推荐

  1. zookeeper 伪集群安装和 zkui管理UI配置

    #=======================[VM机器,二进制安装] # 安装环境# OS System = Linux CNT7XZKPD02 4.4.190-1.el7.elrepo.x86_ ...

  2. Oracle expdp导出分区表,query条件带有rownum

    Oracle expdp导出分区表,query条件带有rownum 前言 在做数据脱敏的时候,对一张刚好是分区表的表做导出,为了只取出部分数据看是否数据可以正常脱敏,在query中带上rownum. ...

  3. 关于数据文件的文件头2-P2

    文章目录 1 疑问点 2 实验验证 2.1 实验环境 2.2 创建统一区大小管理表空间 2.2.1 统一区大小40k 2.2.2 统一区大小56k 2.2.3 统一区大小64k 2.2.4 统一区大小 ...

  4. (私人收藏)红色项目工作计划总结汇报PPT模板

    红色项目工作计划总结汇报PPT模板 https://pan.baidu.com/s/1fr-PB7ieveSIqSXrB0YXsgbgdc

  5. 【react】实现动态表单中嵌套动态表单

    要实现一个功能动态表单中嵌套动态表单如下: 仔细看看antd的文档其实不难 具体步骤如下 1.建立一个 名为 ConcatRegion的组件(动态表单A)代码如下 export function Co ...

  6. 你知道Spring是怎么将AOP应用到Bean的生命周期中的吗?

    聊一聊Spring是怎么将AOP应用到Bean的生命周期中的? 本系列文章: 听说你还没学Spring就被源码编译劝退了?30+张图带你玩转Spring编译 读源码,我们可以从第一行读起 你知道Spr ...

  7. CountDownLatch 线程工具类

    CountDownLatch:概念是,允许一个或多个线程等待其他线程完成操作: 在线程基础知识中,学习过线程的join方法,当前线程阻塞等待join线程执行完毕才能执行: 测试代码如下: public ...

  8. 嗨,This is G-Aurora

    嗨,This is G-Aurora   分享让我们得以持续 在很长一段时间里,自己都是将学习笔记整理到自己的磁盘或者网盘中.大概那个时候还对"开源与分享"不太感冒.但后来越来越觉 ...

  9. 图文详解Prometheus监控+Grafana+Alertmanager告警安装使用

    一:前言 一个服务上线了后,你想知道这个服务是否可用,需要监控.假如线上出故障了,你要先于顾客感知错误,你需要监控.还有对数据库,服务器的监控,等等各层面的监控. 近年来,微服务架构的流行,服务数越来 ...

  10. PE文件结构详解(三)

    0x01 前言 上一篇讲到了数据目录表的结构和怎找到到数据目录表(DataDirectory[16]),这篇我们我来讲讲数据目录表后面的另一个结构——区块表. 0x01 区块 区块就是PE载入器将PE ...