5、优化

1、性能工具

2、设计优化

3、数据格式

4、作业和查询

冲哥:

1、用union all(不排序不去重) 不用union(去重和排序,依次按每列排序)

  注:以上hive on mr满足,但是在hive on spark上union(去重但是不排序)

2、去重使用group by不用distinct,两个job弱化数据倾斜,第一次随机分区,多个reduce,缓解倾斜

  set hive.groupby.skewindata=true

3、用grouping sets,with rollup,with cube,不用union

4、不用order by,用row_number

5、用分区表避免全表扫描

6、使用parquet格式

7、where卸载最里层,减少外层数据量

8、查数据时要限定时间范围减少数据量

9、活用中间表

10、连表查询要有关联条件,防止笛卡尔积

11、尽量用app层数据,粗粒度层表,数据讲过聚合,直接用,避免倾斜

其他:

1、设计分区表

2、数据文件优化

  parquet

  中间文件压缩

  set hive.exec.compress.intermediate=true

  set hive.intermediate.compression.codec=org.apache.hadoop.io.compress.SnappyCodec

  输出文件压缩

  set hive.exec.compress.output=true

  set mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec

  存储

  使用容器文件存储

原文地址:https://www.cnblogs.com/lybpy/p/9972153.html