Hive Tunning(二)优化存储

  • 时间:
  • 浏览:1
  • 来源:彩神幸运飞艇_神彩幸运飞艇官方

– set    hive.optmize.bucketmapjoin=true;    

– set    hive.auto.convert.join=true;    

• All    the    time:    

– set    hive.enforce.sortng=true;    

你这些 参数大伙儿儿还时需在hive-site.xml中查询到,大伙儿儿也还时需在shell中查询。

• These and more are set by default in HDP 1.3(明显的广告词,说明HDP比较强大,因为给大伙儿儿设置好了).    

– set    hive.auto.convert.sortmerge.join=true;    

当然全部不是个原则,当mappers冒出 抢占资源的之后,才调整你这些 参数。

• When    bucketing    data:    

(1)查询所有的参数

– set    hive.auto.convert.sortmerge.join.nocondi1onaltask=true;    

min    太久->   太久mapper.    

Example:    

其中的xdate和state是不发生的列,给你认为它们是虚拟列,虚拟列会在HDFS当中建立子目录,属于分区的记录会发生那个子文件夹中。 

– set    mapred.max.split.size=1000000000;    

(3)修改参数

(2)查询某另1个参数

当某个表很大的之后,大伙儿儿往往要对其进行分区,比如按照时间来分区。

– set    hive.optmize.mapjoin.mapreduce=true;    

因为你想一次查出所有数据,愿意受你这些 限制语句,给你 hive.exec.dynamic.partition.mode参数置为nonstrict。 

– set    hive.enforce.bucketing=true;    

– set    mapred.min.split.size=10000000; 

时会插入数据的之后,大伙儿儿时需重新排序,在select 语句上端把虚拟列也加带,原本会有排序的效果。

max    太小->   mapper太久.   

– set    io.sort.mb=1000;    

使用分区之后,在查询和插入的之后,就时需带有相当于 另1个分区字段,时会查询因为失败。

mapred.max.split.size和mapred.min.split.size

– set    hive.optmize.bucketmapjoin.sortedmerge=true;