Hive分区过多有何坏处以及分区时的注意事项

  1.当分区过多且数据很大时,可以使用严格模式,避免出发一个大的mapreduce任务。当分区数量过多且数据量较大时,执行宽范围的数据扫描会触发一个很大的mapreduce任务。在严格模式下,当where中没有分区过滤条件时会禁止执行。

  2.hive如果有过多的分区,由于底层是存储在HDFS上,HDFS上只用于存储大文件 而非小文件,因为过多的分区会增加namenode的负担。

  3.hive会转化为mapreduce,mapreduce会转化为多个task。过多小文件的话,每个文件一个task,每个task一个JVM实例,JVM的开启与销毁会降低系统效率。

  注意:合理的分区不应该有过多的分区和文件目录,并且每个目录下的文件应该足够大。

猜你喜欢

转载自my.oschina.net/134596/blog/1798994