将数据从临时表移动到临时表时,获取GC开销限制超出了错误

时间:2016-03-31 05:52:18

标签: hadoop mapreduce hive hiveql

我们有一个1 GB的CSV文件,我们正在尝试加载到hive表中。首先,我们使用下面的配置单元查询将数据移动到临时表。此文件包含656列。

use ${hiveconf:database_name};
set table_name = table_name;
LOAD DATA LOCAL INPATH "${hiveconf:path}" OVERWRITE INTO TABLE ${hiveconf:table_name};

use ${hiveconf:database_name}; set table_name = table_name; LOAD DATA LOCAL INPATH "${hiveconf:path}" OVERWRITE INTO TABLE ${hiveconf:table_name}; 然后我们使用以下查询将数据从tmp表移动到临时表。

use ${hiveconf:database_name};
SET mapred.job.queue.name=root.dev;
set hive.exec.max.dynamic.partitions.pernode = 500;
SET hive.variable.substitute.depth=100;
SET PATTERN='\\^';
SET REPLACEMENT='';
INSERT OVERWRITE TABLE STAGING_TABLE partition(FILE_NAME="${hiveconf:PARTITION_BY}")
                                        SELECT 
                                        COLUMN1,
                                        COLUMN2,
                                        ..
                                        COLUMN656
                                        FROM TEMP_TABLE;
执行上述脚本时,我收到以下错误。

use ${hiveconf:database_name};
SET mapred.job.queue.name=root.dev;
set hive.exec.max.dynamic.partitions.pernode = 500;
SET hive.variable.substitute.depth=100;
SET PATTERN='\\^';
SET REPLACEMENT='';
INSERT OVERWRITE TABLE STAGING_TABLE partition(FILE_NAME="${hiveconf:PARTITION_BY}")
                                        SELECT 
                                        COLUMN1,
                                        COLUMN2,
                                        ..
                                        COLUMN656
                                        FROM TEMP_TABLE;

如果文件大小小于300 MB,我们不会遇到上述查询的任何问题。如果文件大小超过300 mb,我们将收到GC限制问题。

当我们询问infra团队时,我们被告知要重写我们的查询。有人可以解释一下我们在上述查询中做错了什么吗?

先谢谢