這是我的問題。 我有一個大型數據集可以使用,而且我需要限制每個鍵的最大值。有時候我每個鍵有超過10000個值,這是我需要的。如何限制Hadoop中每個鍵的最大值?
那麼我怎樣才能配置我的作業,使每個鍵的'x'值? (任何關鍵)在減少階段後。
編輯:這是減少源代碼。我的主要問題是有時我會得到一個OutOfMemory,這是因爲StringBuilder變得巨大。
也許有一種方法可以通過配置來說「我只想要每個鍵有10.000個值」。如果不是這樣,我必須把一些額外的代碼在我的減速器...
public void reduce(Text domain, Iterable<Text> inLinks, Context context) throws IOException,
InterruptedException {
allInlinks = new StringBuilder();
for (Text text : inLinks) {
allInlinks.append(text.toString());
allInlinks.append(",");
}
allLinksText.set(allInlinks.toString());
context.write(domain, allLinksText);
}
您是否想要減小減速機輸出的大小? –
這個想法是限制與鍵值相關的輸出不是字節。 – psabbate