2014-01-15 29 views
0

我剛剛閱讀了關於在twitter中大規模機器學習的這個paperPig中的縮減和存儲功能之間的關係

在他們指出這個數字的文件顯示,每降低有它自己的存儲功能

(它在紙頁5如圖一中),並指出該代碼(我把它短,但很相同):

training = load `/tables/statuses/$DATE' using TweetLoader() as (id: long, uid: long, text: chararray); 
training = foreach training generate $0 as label, $1 as text, RANDOM() as random; 
training = order training by random parallel $PARTITIONS; 
training = foreach training generate label, text; 
store training into `$OUTPUT' using TextLRClassifierBuilder(); 

在我的理解中,parallel $PARTITIONS引發豬創建兩個減速,但我不明白的是相對於存儲功能。 如果我將$PARTITIONS設置爲2,那麼每個存儲模型的名稱是什麼?讓我說,我希望每個商店的功能將得到50%的培訓。我該怎麼做? 在內存中是否提供所有培訓?有一種方法可以減少50%的培訓嗎?

回答

0

正如您所提到的,PARALLEL控制減速器的數量。在Hadoop框架中,每個reducer生成它自己的輸出文件。 (在MultipleOutputs的情況下有多個輸出文件。)

每個輸出文件通常都有一個名稱,如part-r-00000part-r-00372,其中數字表示哪個減速器生成它。如果你有100個reducer,你將以文件part-r-00000,part-r-00001,...,part-r-00099結束。

+0

如果我的訓練是說5,8,9,7,4,3。並且我在平行2中下訂單,我將可以像這樣3,4,5和7,8,9或5,8,9和3,4,7這樣的2個文件。我的意思是每個文件只會被排序,或者文件1中的所有數字都會小於file2中的數字? (我應該爲此打開一個新問題嗎?) – Ran

+0

閱讀Hadoop的洗牌和排序階段。 –

+0

我在這裏閱讀了一下http://developer.yahoo.com/hadoop/tutorial/module4.html#dataflow在我的理解了這個過程的過程中,結果是像這樣3,4,5和7,8, 9。我對嗎? – Ran

相關問題