欢迎投稿

今日深度:

Hive的优化,

Hive的优化,


该博客已经完全转移到http://sunhs.me

 

中并增加更多新的技术内容(hadoop为

 

主),欢迎访问!

1.列裁剪     查询时我只关心用到的那几个列。     需要设置:hive.optimize.cp = true 2.分区裁剪     查询过程中减少不必要的分区。     需要设置:hive.optimize.pruner = true 3.join     join操作在recude阶段join左边表中的内容会被加载到内存中,将数据少的表放在左边可以减少内存溢出的发生。 4.map join     map join无需reduce操作就可以在map阶段全部完成,前提是在map阶段能够访问到全部需要的数据。 5.group by     map端部分聚合:          需要设置:                   hive.map.aggr = true    设定是否在map端进行聚合  默认为true               hive.groupby.mapaggr.checkinterval =  10000  设定在map端进行聚合操作的条目数     有数据倾斜时进行负载均衡:          需要设置:               hive.groupby.skewindata  = true  生成的查询计划会有两个mapreduce任务,第一个任务中的map输入会随机分到reduce中,对每个reduce做部分聚合,这样处理的结果是:相同的group by key有可能被分发到不同的reduce中,从而达到负载均衡的目的。第二个任务再根据预处理数据结果按照group by key分布到reduce中。 6.合并小文件     合并map和reduce的中间结果文件来提高效率     需要设置:              hive.merge.mapfiles = true              设定是否合并map输出文件  默认是true              hive.merge.mapredfiles = false        设定是否合并reduce输出文件  默认是flase              hive.merge.size.per.task = 256*1000*1000     设定合并文件的大小

www.htsjk.Com true http://www.htsjk.com/hive/39607.html NewsArticle Hive的优化, 该博客已经完全转移到http://sunhs.me   中并增加更多新的技术内容(hadoop为   主),欢迎访问! 1.列裁剪    查询时我只关心用到的那几个列。    需要设置:hive.optimize....
相关文章
    暂无相关文章
评论暂时关闭