Ich erstelle erweiterte Bienenstock-Tabelle:
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.
dann führe ich Abfrage aus
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)
Meine Hive-Version ist 0,90 und die Hadoop-Version ist 1.0.0
Wie behebe ich das? Vielen Dank.
Antworten:
0 für die Antwort № 1Versuchen Sie, die JVM-Speichereinstellungen zu erhöhen, um den OutOfMemoryError zu behandeln
Siehe [Wie kann ich den JVM-Speicher erhöhen?] [1] und [Verhalten von JVM während eines nicht ausreichenden Speicherfehlers?] [2] [1]: Wie kann ich den JVM-Speicher erhöhen? [2]: Verhalten von JVM während des Speicherfehlers? Liste s = new ArrayList <String> ();