hive的分区根本上解决什么问题?

2020-07-06 19:23发布

hive的分区根本上解决什么问题?

hive的分区根本上解决什么问题?

1条回答
立志大灰狼
2020-07-06 19:24

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

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

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

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


一周热门 更多>