首页 hive优化
文章
取消

hive优化

hive的优化乍看起来和之前hive数据倾斜的内容差不多,实则不太一样。优化不只是数据倾斜的情况才优化,数据分配的不合理、资源浪费的太多都是可优化项。

调整 map 个数

需要考虑的问题

  1. 输入数据的大小

  2. 输入数据的行数

还需要解决的一个问题是一个 map 使用了多少 CPU 的资源和内存的资源,然后综合来看一个 map 处理多大或者多少行的数据比较合适。 问题来了,怎样去看一个map用了多少 CPU 资源以及内存资源?

set mapreduce.input.fileinputformat.split.maxsize = 1024000000;

又一个奇怪的现象:mapreduce.input.fileinputformat.split.maxsize 这个参数变大,map的数量减少,reduce的数量增加。

调整 reduce 个数

set hive.exec.reducers.bytes.per.reducer=64000000; 设置每个 reduce 的大小,64000000 表示 64M,默认值 256000000

关闭 map join

set hive.auto.convert.join=false;

other

Hive中小表与大表关联(join)的性能分析

事实上“把小表放在前面做关联可以提高效率”这种说法是错误的。正确的说法应该是“把重复关联键少的表放在join前面做关联可以提高join的效率。”

Hive join的三种优化方式

第一:在map端产生join set hive.auto.convert.join=true;

MapReduce如何解决数据倾斜?

MapReduce 数据倾斜原因和解决方案

数据倾斜

数据倾斜有一个

比较叼有时间细看一下 数据仓库的几种建模方法 the same as 上面

hive data qingxie

hive数据倾解决详解

hive数据倾斜解决方法

Hive数据倾斜解决方法总结 hive数据倾斜的解决办法

造成数据倾斜的原因

解决方案

思想:

  1. 分散 reduce 的 key 分布
  2. 尽可能早的减少数据量
  3. 调参

##

本文由作者按照 CC BY 4.0 进行授权