栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hive常用的调优方法

Hive常用的调优方法

前言:Hive调优是日常工作中比较常见的问题,本文简要总结一下常用的调优方法。

一、代码层面的优化

1.去重两种方式:distinct和group by。推荐使用group by来对数据去重。distinct会将相同的key shuffle到一个reduce task中处理,group by 会启用多个reduce task来对数据进行分组去重。

2. 在做具体业务时,尽量明确具体的字段内容,避免使用select * 。

3.在使用join时,可以先过滤表中的数据之后再进行join。

二、小文件过多

1.使用 hive 自带的 concatenate 命令,自动合并小文件

2.使用hadoop的archive将小文件归档

3.在map执行前合并小文件,减少map数:使用CombineHiveInputFormat对小文件进行合并

set hive.input.format= org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;

三、并行执行

通过设置参数hive.exec.parallel值为true,就可以开启并发执行。

set hive.exec.parallel=true;              //打开任务并行执行

set hive.exec.parallel.thread.number=16;  //同一个sql允许最大并行度,默认为8。

四、JVM重用

开启JVM重用可以有效应对task和小文件过多的情况,JVM重用可以使得JVM实例在同一个job中重新使用N次。在mapred-site.xml配置文件里配置。

  mapreduce.job.jvm.numtasks

  10

  How many tasks to run per jvm. If set to -1, there is

  no limit.

 

五、推测执行

对于严重拖慢作业完成的某个task,Hadoop采用推测执行的机制,启动备份任务,最终选择最先成功完成任务的计算结果最为最终结果。

  mapreduce.map.speculative

  true

  If true, then multiple instances of some map tasks

               may be executed in parallel.

  mapreduce.reduce.speculative

  true

  If true, then multiple instances of some reduce tasks

               may be executed in parallel.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/736003.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号