2013-10-09 53 views
2

如何根據我的輸入大小將減速機的數量設置爲我的mapreduce作業。 我在Hive和Pig知道它flollows如何根據輸入大小設置減速機的數量

hive.exec.reducers.bytes.per.reducer 
pig.exec.reducers.bytes.per.reducer 

我想類似的工作,在我的地圖,減少工作的,就請幫我

這使我想起

回答

2

的一件事是在提交作業之前分析輸入並根據輸入大小設置減速器的數量。

例如,如果使用的是HDFS輸入源有被稱爲getContentSummary(http://hadoop.apache.org/docs/current/api/org/apache/hadoop/fs/FileSystem.html#getContentSummary(org.apache.hadoop.fs.Path))方法,讓你回輸入的大小。

之後,您可以使用該信息來計算減速器的數量。 (一些適合您需求的邏輯),然後使用setNumReduceTasks設置該數字。

對於其他數據源,您應該使用類似的方法。

+0

然後 FileSystemOBJ.getContentSummary(Path filePath).getLength() 將完成我的工作嗎? – sudheer

+0

你應該使用getSpaceConsumed()方法來獲取文件的實際大小。 –

相關問題