hive常用优化方法大全
hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以通过类SQL语句快速实现简单的MapReduce统计,十分适合数据仓库的统计分析。
sgp
在使用hive的过程中,可以进行hive优化,以下是常用的hive优化方法:
1. join连接时的优化:当三个或多个以上的表进行join操作时,如果每个on使用相同的字段连接时只会产生一个mapreduce;
papst
2. join连接时的优化:当多个表进行查询时,从左到右表的大小顺序应该是从小到大,原因是hive在对每行记录操作时会把其他表先缓存起来,直到扫描最后的表进行计算;
3. 在where字句中增加分区过滤器;
dxx4. 当可以使用left mi join 语法时不要使用inner join,前者效率更高,原因是对于左表中指定的一条记录,一旦在右表中找到立即停止扫描;
5. 如果所有表中有一张表足够小,则可置于内存中,这样在和其他表进行连接的时候就能完成匹配,省略掉reduce过程,设置属性即可实现,t vert.join=true; 用户可以配置希望被优化的小表的大小 t hive.mapjoin.smalltable.size=2500000; 如果需要使用这两个配置可置入$HOME/.hiverc文件中;
6. 同一种数据的多种处理:从一个数据源产生的多个数据聚合,无需每次聚合都需要重新扫描一次;
7. limit调优:limit语句通常是执行整个语句后返回部分结果,t hive.able=true;cute怎么读呢
万圣节的英文歌8. 开启并发执行:某个job任务中可能包含众多的阶段,其中某些阶段没有依赖关系可以并发执行,开启并发执行后job任务可以更快的完成,设置属性:parallel=true;
儿童学数学9. hive提供的严格模式,禁止3种情况下的查询模式:
大学英语综合教程1
a:当表为分区表时,where字句后没有分区字段和限制时,不允许执行;
lj什么意思
b:当使用order by语句时,必须使用limit字段,因为order by 只会产生一个reduce任务。
c:限制笛卡尔积的查询;
10. 合理的设置map和reduce数量;
昕薇电子杂志11. jvm重用。可在hadoop的l中设置jvm被重用的次数。
除此之外,还有很多其他的优化方式,感兴趣的可以深入学习一下,相信不断的学习和积累,必定能熟练掌握大数据知识,成为高级大数据工程师!
relationship