使用Apache的豬版本0.10.1.21(報告), CentOS版本6.3(最終),jdk1.6.0_31(該Hortonworks沙箱V1.2 VirtualBox上,擁有3.5 GB RAM)豬本地模式下,基,或加入= java.lang.OutOfMemoryError:Java堆空間
$ 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 : [email protected]
[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堆空間每次使用GRO時間發生錯誤UP或JOIN在本地模式下執行的豬腳本中。在HDFS上以mapreduce模式執行腳本時沒有錯誤。
問題1:當數據樣本很小而本地模式比HDFS模式佔用更少的資源時,怎麼會出現OutOfMemory錯誤?
問題2:是否有解決方案可以在本地模式下成功運行GROUP或JOIN的小豬腳本?
我從來沒有做任何團體或煩惱在本地地圖加入減輕模式下,即使在非常大的數據集。 ..我想象或者您的JVM的設置都搞砸了,或者你的本地豬/ Hadoop的設置某種內存最大允許設置爲0,你肯定它只是羣組以及加入該本地失敗?如果你使用大量的內存用於非豬相關的Java程序,會發生什麼情況? – DMulligan 2013-05-11 18:29:36
嗨,這是Hortonwords沙盒。當我通過GUI連接時(Hortons HUE GUI允許通過同一個沙箱的HDFS上的Web瀏覽器運行Pig,Hive)。所有演示運行良好,具有更大的數據集(10 MB)。所以我想JVM可以處理更大的負載。這顯然是本地模式下的一個錯誤。只要有GROUP或JOIN,Pig就會因java OutOfMemory錯誤而失敗。無論數據樣本大小如何,Grunt shell還是Pig Script。 – Polymerase 2013-05-11 20:25:04
我對Hortonwords一無所知,但是如果你在本地使用DISTINCT進行查詢,那麼工作正常嗎?有允許洗牌,排序,加入了一堆的最大內存的Hadoop /豬相關的設置等。我的猜測是那些仍然那1 0 – DMulligan 2013-05-12 00:45:13