大数据学习(二十二)hive中sort bycluster byorder by的区别

Posted 阿齐(努力打工版)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据学习(二十二)hive中sort bycluster byorder by的区别相关的知识,希望对你有一定的参考价值。

1.order by 

对查询结果集执行一个全局排序,只要使用order by就会有一个所有的数据都通过一个reducer进行处理的过程。

2.sort by

会在每个reducer中对数据进行排序,执行一个局部排序过程,保证每个reducer的输出数据都有序的(并非全局有序)

3.distribute by

distribute by是控制在map端如何拆分数据给reduce端的。hive会根据distribute by后面列,对应reduce的个数进行分发,默认是采用hash算法。distribute by常常和sort by一起组合使用

(此处后续会增加实例)

4.cluster by

当distribute by和sort by后面的字段相同时,可以使用cluster by进行简化。功能是等价的;但是只能使用升序排序,不能指定排序规则为asc或者desc。

注:Distribute by和sort by的使用场景

1.Map输出的文件大小不均。

2.Reduce输出文件大小不均。

3.小文件过多。

4.文件超大。

以上是关于大数据学习(二十二)hive中sort bycluster byorder by的区别的主要内容,如果未能解决你的问题,请参考以下文章

打怪升级之小白的大数据之旅(六十二)<Hive旅程第三站:Hive数据类型>

大数据学习(二十五)hive中的space函数

Hive学习之路 (二十一)Hive 优化策略

大数据NiFi(二十二):Kafka中数据实时导入到HDFS中

大数据之-HIVE入门(十二)

大数据ClickHouse进阶(二十二):ClickHouse优化