hive的几个排序
hive中常用的几个排序 order by #全局排序,因为是全局排序,所以job是一个reduce,reduce的个数参数设置对其无效 sort by #一个reduce时为全局排序,多个reduce时,每个reduce各自排序,为了提高全局排序的性能,可以先用sort by做局部排序,然后再做全局排序 distribute by #hash 分组,根据key和reduce个数进行数据分发,默认使用hash的方式 cluster by #distribute by + sort by(注意和hive.enforce.bucketing参数的应用) 结合两个例子来看排序的应用: 1)cdnjob的优化思路 熟悉map slot的分配规则的同学应该知道,text gz的文件是不支持split的,因此这种情况下最多只有一个map(不管数据量多大), 这样在做数据处理时,如果文件很大而且计算逻辑比较复杂(比如cdn的报表,需要做各种聚合计算和ip地址的解析),效率就会比较低下。 一个思路就是建一个中间表,对原始表进行distribute by,对中间表进行复杂的计算,这样就可以使用多个m...