Korzystanie Apache Pig wersja 0.10.1.21 (zgłaszane), CentOS zwolnić 6,3 (Final), jdk1.6.0_31 (The Hortonworks Sandbox v1.2 na VirtualBox z 3,5 GB pamięci RAM)Pig tryb lokalny, grupy lub dołączyć = java.lang.OutOfMemoryError: Java sterty przestrzeń
$ 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: przestrzeń sterty Java błąd występuje za każdym razem używam GRO UP lub JOIN w skrypcie świni wykonywanym w trybie lokalnym. Nie ma błędu, gdy skrypt jest wykonywany w trybie mapreduce na HDFS.
Pytanie 1: Dlaczego istnieje OutOfMemory błąd podczas próbka danych jest nikła i tryb lokalny powinien używać mniej zasobów niż tryb HDFS?
Pytanie 2: Czy istnieje rozwiązanie, aby pomyślnie uruchomić małe skrypty świni z GRUPĄ lub DOŁĄCZ w trybie lokalnym?
nigdy nie miałem żadnych kłopotów robi grup lub dołącza w lokalnej mapie tryb zmniejszyć, nawet na bardzo dużych zbiorów danych. .. Wyobrażam sobie, że albo ustawienia twojego JVM są spieprzone, albo twoja lokalna świnia/maczuga ustawiła jakąś maksymalną dozwoloną pamięć na ustawienie 0. Jesteś pewien, że to tylko GRUPA i JOIN, które zawiodły lokalnie? Jeśli używasz dużej ilości pamięci dla programu java niezwiązanego ze świnką, co się dzieje? – DMulligan
Cześć, to jest Sandbox Hortonwords. Kiedy łączę się za pomocą GUI (GUI Hortons HUE, który pozwala uruchomić Pig, Hive przez przeglądarkę internetową na HDFS tego samego piaskownicy). Wszystkie demo działa dobrze z dużo większym zbiorem danych (10 MB). Tak przypuszczam, że JVM obsługuje OK większy ładunek. Jest to oczywiście błąd w trybie lokalnym. Jak tylko pojawi się GROUP lub JOIN, Pig nie działa z błędem OutOfMemory Java. Bez względu na rozmiar próbki danych, powłokę Grunt lub Pig Script. – Polymerase
Nie wiem nic o Hortonwords, ale jeśli robisz zapytanie z DISTINCT lokalnie, czy to działa dobrze? Jest kilka ustawień związanych z Hadoop/świnią dla maksymalnej pamięci dozwolonej dla tasowania, sortowania, łączenia itd. Przypuszczam, że 1 z nich to 0. – DMulligan