常规调优手段

  • 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. Spark中自定义累加器

    通过继承AccumulatorV2可以实现自定义累加器. 官方案例可参考:http://spark.apache.org/docs/latest/rdd-programming-guide.html# ...

  2. NodeMCU手把手入门:配置NodeMCU ESP8266开发板环境及点亮LED灯

    之前一直在玩树莓派,最近实验室买了些NodeMCU就想着玩一玩,没想到挺有意思的.其实树莓派能实现的功能,它大部分也可以,价格比派也便宜不少,舍不得买派的同学可以先买这个开发板玩一玩. 本文主要介绍了 ...

  3. 查看Oracle当前用户下的(表视图,同义词...)

    查看Oracle当前用户下的信息(用户,表视图,索引,表空间,同义词,存储过程函数,约束条件) 0.表空间 SQL>select username,default_tablespace from ...

  4. Python进阶之浅谈内置方法

    目录 有序or无序和可变or不可变 数字类型内置方法 整形 浮点型 字符串类型内置方法 有序or无序和可变or不可变 有序:有索引 无序:无索引 可变:变量值变,id不变 不可变:变量值变,id也变 ...

  5. P2629 【好消息,坏消息】

    其实刚开始看到这道题,应该很多都会想到区间DP中的合并石子,开一个2倍的空间(严格来说的话应该是2n-1),将本来的环变成一个链式的结构.然后对于得到的消息,可以预处理一个前缀和,这样就可以很方便的知 ...

  6. 八.django日志配置

    Django 日志 Django 使用Python 内建的logging 模块打印日志,Python 的logging 配置由四个部分组成: 记录器 —— Logger 处理程序 —— Handler ...

  7. python案例远程执行命令

    ------类似于cmd的功能,client执行命令,server发命令结果发送到client -----------server.py------------------- import subpr ...

  8. SecureCRT连接阿里云ECS服务器,经常掉线的解决方案

    1 使用SecureCRT远程连接后,Options > Session Options > Terminal(终端) > 勾选 “Send protocol NO-OP”

  9. Write a program that prints its input one word per line.

    #include <stdio.h> #define State '\n' void main() { int Juge=;/*only one space*/ int c=; while ...

  10. idea 链接 Tomcat 出现的错误 Application server libraries not found

    红色字体是重点 好久好久没有上来了.一直忙于工作没事有时间进行总结. 最近在家隔离期间发现了一个好玩的游戏率土之滨  , 玩的不错和大盟主混的很好.在给盟里做考勤任务的时候发现很麻烦还需要用Excel ...