Hive 使用包含大约800个零件文件的配置单元表控制映射器
我有一个配置单元表,每天都会向其中添加数据。 因此,每天大约添加5个文件。 现在我们在这张桌子下面有800个零件文件 我遇到的问题是在任何地方加入或使用此表都会触发800个映射程序,因为映射程序与文件的数量成比例 但是我必须使用整个表来运行我的作业 有没有办法使用整个表,但不触发太多的映射器 文件如下所示Hive 使用包含大约800个零件文件的配置单元表控制映射器,hive,mappers,Hive,Mappers,我有一个配置单元表,每天都会向其中添加数据。 因此,每天大约添加5个文件。 现在我们在这张桌子下面有800个零件文件 我遇到的问题是在任何地方加入或使用此表都会触发800个映射程序,因为映射程序与文件的数量成比例 但是我必须使用整个表来运行我的作业 有没有办法使用整个表,但不触发太多的映射器 文件如下所示 -rw-rw-r-- 3 XXXX hdfs 106610 2015-12-15 05:39 /apps/hive/warehouse/prod.db/TABLE1/00000
-rw-rw-r-- 3 XXXX hdfs 106610 2015-12-15 05:39 /apps/hive/warehouse/prod.db/TABLE1/000000_0_copy_1.deflate
-rw-rw-r-- 3 XXXX hdfs 106602 2015-12-23 12:31 /apps/hive/warehouse/prod.db/TABLE1/000000_0_copy_10.deflate
-rw-rw-r-- 3 XXXX hdfs 157686 2016-03-06 05:20 /apps/hive/warehouse/prod.db/TABLE1/000000_0_copy_100.deflate
-rw-rw-r-- 3 XXXX hdfs 163580 2016-03-07 05:22 /apps/hive/warehouse/prod.db/TABLE1/000000_0_copy_101.deflate
我更愿意对表进行分区,以便将数据存储在分区目录中,无论何时查询,都只访问分区下的文件,使用分区列时在配置单元查询中触发的映射程序也是如此。
另一种选择是使用clusterby子句将数据分配到固定数量的带块目录中,从而减少查询时访问的目录和文件的数量