2013-04-22 100 views
0

創建擴展蜂巢表:蜂巢錯誤運行SELECT查詢

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) 

我的蜂巢版本是0.90和Hadoop版本是1.0.0

如何解決這個問題。非常感謝。

+0

設法增加JVM內存設置 參考[1]和[內存不足的錯誤在JVM的行爲?] [2] [我要如何增加JVM內存?] [1]:http://stackoverflow.com/questions/2294268/how-can-i-increase-the-jvm-memory [2]:http://stackoverflow.com/questions/7753443/behaviour- of-jvm-during-memory-error-list-s-new-arrayliststring – 2013-04-22 17:50:25

回答

0

設法增加JVM內存設置來處理的OutOfMemoryError

參考[我要如何增加JVM內存?] [1]和[內存不足的錯誤在JVM的行爲?] [2] [1] :How can I increase the JVM memory? [2]:Behaviour of JVM during out of memory error? List s = new ArrayList<String>();

+0

謝謝。我有添加配置mapred.child.java.opts是-Xmx1024m。我在哪裏創建表CREATE TABLE list_bucket_single(key STRING,value STRING);然後運行select查詢成功。並且表hivelog的數字很小。 – cldo 2013-04-22 17:59:58