我想在hadoop的不同節點中存儲catagorized數據。如何將map-reducede輸出存儲在不同的節點中?
例如:
Node - 1 >> Animal.txt
Node - 2 >> Sports.txt
Node - 3 >> Life.txt
.
.
.
Node - n >> nnnnn.txt
有沒有辦法做到這一點。
**對不起,如果我的描述很薄弱。
我想在hadoop的不同節點中存儲catagorized數據。如何將map-reducede輸出存儲在不同的節點中?
例如:
Node - 1 >> Animal.txt
Node - 2 >> Sports.txt
Node - 3 >> Life.txt
.
.
.
Node - n >> nnnnn.txt
有沒有辦法做到這一點。
**對不起,如果我的描述很薄弱。
通過將文件存儲在特定節點上,您正在擊敗HDFS - 它有多餘的副本。我不認爲你必須使用HDFS。您可能會創建一個寫入本地文件系統的減少作業,但我不推薦它。
底層數據存儲設施(HDFS)完全隱藏數據實際存儲的位置。因此,瞭解這一點對於您的應用程序來說就是「您不需要知道這一點」。
另一方面,我很好奇,爲什麼你想控制這個?
雖然無法可靠地選擇存儲在其上的物理節點的標識,但可能會劃分數據以便每個子集(動物,體育,生活)都位於同一節點本地。
只要您可以通過編程方式將每條記錄標識爲集合中的一部分(動物,運動,生活等),那麼您可以實現自己的Partitioner。這與實現散列函數類似,其中具有相同散列碼的所有密鑰將被相同的縮減器縮小。
[RAW輸入] - > [身份映射] - > [您的自定義分區程序] - > [身份減速]
由於其他用戶已經提到,HDFS默認情況下將複製輸出數據到其他節點。所以如果你想保證數據的局部性,你將不得不在這種情況下禁用複製。當然這是以容錯爲代價的。
在特定節點上存儲數據的目的是什麼。也許可以考慮替代解決方案。 –