1、作业初始化
map reduce作业初始化的时间是比较长的,Hadoop就像吞吐量巨大的轮船,启动开销大,如果每次只做小数量的输入输出,利用率将会很低。所以用好Hadoop的首要任务是增大每次任务所搭载的数据量。
使用CASE WHEN代替子查询,减少生成的mapreduce
2、join 连接时,小表在前,大表在后
3、大数据量,>= ,<=,替换between and
4、>=3,替换>2
5、数据严重倾斜时在sql前面加上
Set hive.groupby.skewindata = true
数据严重倾斜通常发生在 group by,其中维度值少,维度对应的记录数特别大的时候。如计算男女比例。
参考