2011-10-31 44 views
1

我想在hadoop的不同節點中存儲catagorized數據。如何將map-reducede輸出存儲在不同的節點中?

例如:

Node - 1 >> Animal.txt 
Node - 2 >> Sports.txt 
Node - 3 >> Life.txt 
. 
. 
. 
Node - n >> nnnnn.txt 

有沒有辦法做到這一點。

**對不起,如果我的描述很薄弱。

+0

在特定節點上存儲數據的目的是什麼。也許可以考慮替代解決方案。 –

回答

0

通過將文件存儲在特定節點上,您正在擊敗HDFS - 它有多餘的副本。我不認爲你必須使用HDFS。您可能會創建一個寫入本地文件系統的減少作業,但我不推薦它。

0

底層數據存儲設施(HDFS)完全隱藏數據實際存儲的位置。因此,瞭解這一點對於您的應用程序來說就是「您不需要知道這一點」。

另一方面,我很好奇,爲什麼你想控制這個?

1

雖然無法可靠地選擇存儲在其上的物理節點的標識,但可能會劃分數據以便每個子集(動物,體育,生活)都位於同一節點本地。

只要您可以通過編程方式將每條記錄標識爲集合中的一部分(動物,運動,生活等),那麼您可以實現自己的Partitioner。這與實現散列函數類似,其中具有相同散列碼的所有密鑰將被相同的縮減器縮小。

[RAW輸入] - > [身份映射] - > [您的自定義分區程序] - > [身份減速]

由於其他用戶已經提到,HDFS默認情況下將複製輸出數據到其他節點。所以如果你想保證數據的局部性,你將不得不在這種情況下禁用複製。當然這是以容錯爲代價的。

相關問題