0

我创建扩展配置单元表:

 CREATE EXTERNAL TABLE  hivelog (timestamp BIGINT ,value STRING)
 PARTITIONED BY(dt BIGINT) row format serde
 'hive.serde.AdsClickLogWritableDeserializer'  stored as inputformat
 'org.apache.hadoop.mapred.SequenceFileInputFormat'   outputformat
 'org.apache.hadoop.mapred.SequenceFileOutputFormat' location
 '/user/hive/HiveData';

hive.serde.AdsClickLogWritableDeserializer is my class deserialized data.

然后我运行查询

select count(*) from hivelog  that has error:

2013-04-22 22:30:51,228 FATAL org.apache.hadoop.mapred.Child: Error running child : java.lang.OutOfMemoryError: Java heap space
    at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.<init>(MapTask.java:949)
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:428)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:372)
    at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at org.apache.hadoop.mapred.Child.main(Child.java:249)

我的 hive 版本是 0.90,hadoop 版本是 1.0.0

如何解决这个问题。非常感谢。

4

1 回答 1

0

try to increase JVM memory settings to handle the OutOfMemoryError

refer [How can I increase the JVM memory?][1] and [Behaviour of JVM during out of memory error ?][2] [1]: How can I increase the JVM memory? [2]: Behaviour of JVM during out of memory error? List s = new ArrayList<String>();

于 2013-04-22T17:52:04.310 回答