我有一个hive外部文本文件表(表名:tmp),大约有700列。
当我尝试使用命令" insert into table inner_table select * from tmp;"
创建内部orc表(表名:inner_table)时。
我收到了“java.lang.OutOfMemoryError:Java堆空间”错误。
我用50列完成了类似的任务。 但这次有700列,我失败了。
我已经在下面设置了这些属性。但仍然没有成功。
--set mapreduce.map.memory.mb=8000;
--set mapreduce.map.java.opts=-Xmx8000m;
--set mapreduce.reduce.memory.mb=8000;
--set mapreduce.reduce.java.opts=-Xmx8000m;
请问有人可以帮我解决这个问题。
感谢
TMP:
create external table tmp(
col_1 string,
.
.
.
col_700 string
)
row format delimited fields terminated by ','
null defined as '\\N'
stored as textfile
location 'hdfs://fin:8020/data/raw/2018/03/16/06';
inner_table:
create table inner_talble(
col_1 string,
.
.
.
col_700 string
)
clustered by (col_1)
sorted by (col_1)
into 30 buckets
stored as orc;
命令:
hive> insert into table inner_table select * from tmp;