Локальный режим, группа или join = java.lang.OutOfMemoryError: пространство кучи Java
С помощьюApache Pig версия 0.10.1.21 (сообщается), выпуск CentOS 6.3 (окончательный вариант), jdk1.6.0_31 (Песочница Hortonworks v1.2 в Virtualbox, с 3,5 ГБ ОЗУ)
$ cat data.txt
11,11,22
33,34,35
47,0,21
33,6,51
56,6,11
11,25,67
$ cat GrpTest.pig
A = LOAD 'data.txt' USING PigStorage(',') AS (f1:int,f2:int,f3:int);
B = GROUP A BY f1;
DESCRIBE B;
DUMP B;
pig -x local GrpTest.pig
[Thread-12] WARN org.apache.hadoop.mapred.JobClient - No job jar file set. User classes may not be found. See JobConf(Class) or JobConf#setJar(String).
[Thread-12] INFO org.apache.hadoop.mapreduce.lib.input.FileInputFormat - Total input paths to process : 1
[Thread-13] INFO org.apache.hadoop.mapred.Task - Using ResourceCalculatorPlugin : org.apache.hadoop.util.LinuxResourceCalculatorPlugin@19a9bea3
[Thread-13] INFO org.apache.hadoop.mapred.MapTask - io.sort.mb = 100
[Thread-13] WARN org.apache.hadoop.mapred.LocalJobRunner - job_local_0002
java.lang.OutOfMemoryError: Java heap space
at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.<init>(MapTask.java:949)
at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:674)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:756)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:212)
[main] ERROR org.apache.pig.tools.pigstats.PigStatsUtil - 1 map reduce job(s) failed!
[main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1066: Unable to open iterator for alias B
java.lang.OutOfMemoryError: пространство кучи Java ошибка возникает каждый раз, когда я использую GROUP или JOIN в сценарии PIG, выполняемом в локальном режиме. Нет ошибки при выполнении сценария в режиме mapreduce на HDFS.
Вопрос 1: Почему возникает ошибка OutOfMemory, когда выборка данных незначительна, а локальный режим должен использовать меньше ресурсов, чем режим HDFS?
вопрос 2: Есть ли решение для успешного запуска небольших сценариев свиньи с GROUP или JOIN в локальном режиме?