2016-06-24 13 views
0

Apache PigでFOREACH操作を実行してOutOfMemoryErrorを取得しています。Apache Pig:FOREACH集約を使用したOutOfMemoryError

16/06/24 15:14:17 INFO util.SpillableMemoryManager: first memory  
handler call- Usage threshold init = 164102144(160256K) used = 
556137816(543103K) committed = 698875904(682496K) max = 
698875904(682496K) 

java.lang.OutOfMemoryError: Java heap space 
-XX:OnOutOfMemoryError="kill -9 %p" 
Executing /bin/sh -c "kill -9 4095"... Killed 

マイ豚スクリプト:

A = LOAD 'PageCountTest/' USING PigStorage(' ') AS (Project:chararray, 
Title:chararray, count:int , size:int); 

B = GROUP A BY (Project,Title); 

C = FOREACH B 
generate group, SUM(A.count) AS COUNT; D = ORDER C BY COUNT DESC; 

STORE C INTO '/user/hadoop/wikistats'; 

サンプルデータ:

aa.b Main_Page 1 14335 
aa.d India 1 4075 
aa.d Main_Page 1 13190 
aa.d Special:RecentChanges 1 200 
aa.d Talk:Main_Page/ 1 14147 
aa.d w/w/index.php 9 137502 
aa Main_Page 6 9872 
aa Special:Statistics 1 324 

誰も助けてくださいことはできますか?

答えて

0

ご注文いただいた場合、メモリの問題が最も重いと思われます。最も簡単な方法は、あなたの豚の仕事を開始しながら、ヒープサイズのパラメータで遊ぶことです。

pig -Dmapred.child.java.opts=-Xms2096M yourjob.pig 

また、スクリプト内でヒープサイズを直接宣言することもできます。

export PIG_HEAPSIZE=2096 
関連する問題