Hive调优一文打尽

一、调优概述

Hive 作为大数据领域常用的数据仓库组件,在平时设计和查询时要特别注意效率。影响 Hive 效率的几乎从不是数据量过大,而是数据倾斜、数据冗余、Job或I/O过多、MapReduce 分配不合理等等。对Hive 的调优既包含 Hive 的建表设计方面,对HiveHQL 语句本身的优化,也包含 Hive 配置参数和底层引擎 MapReduce 方面的调整。

所以此次调优主要分为以下四个方面展开:

  1. Hive的建表设计层面
  2. HQL语法和运行参数层面
  3. Hive架构层面
  4. Hive数据倾斜

总之,Hive调优的作用:在保证业务结果不变的前提下,降低资源的使用量,减少任务的执行时间。

二、调优须知

  1. 对于大数据计算引擎来说:数据量大不是问题,数据倾斜是个问题。
  2. Hive的复杂HQL底层会转换成多个MapReduce Job并行或者串行执行,Job数比较多的作业运行效
    率相对比较低,比如即使只有几百行数据的表,如果多次关联多次汇总,产生十几个Job,耗时很长。
    原因是 MapReduce 作业初始化的时间是比较长的。
  3. 在进行Hive大数据分析时,常见的聚合操作比如sum,count,max,min,UDAF等 ,不怕数据倾
    斜问题,MapReduce 在 Mappe阶段 的预聚合操作,使数据倾斜不成问题。
  4. 好的建表设计,模型设计事半功倍。
  5. 设置合理的 MapReduce 的 Task 并行度,能有效

你可能感兴趣的:(大数据企业级实战,hive)