0
我有一個mapreduce作業,可導出hbase表的純文本。我正在模擬帶有hbase並且不運行任何reducer的Export類。另外,我只是爲這個鍵寫了一個空字符串。事情是這樣的:小型映射器零件文件
public void map(ImmutableBytesWritable key, Result value, Context context) throws IOException, InterruptedException {
List<Cell> cells = value.listCells();
for(Cell cell : cells) {
context
.write(new Text(""), new Text(CellUtil.cloneValue(cell)));
}
}
這工作得很好,但我在然而,許多分裂的憐憫中有HBase的表方面的輸出映射文件(例如部分M-NNNNN)的數量。
有沒有辦法在mapreduce作業中合併輸出映射文件?
我已經考慮過使用一個1-50之間的隨機整數作爲鍵,然後使用一個reducer,然後在寫出HDFS之前剝掉鍵,但是這看起來像是一個黑客。
如果我使用rowkey,我認爲它會以相同的問題結束,因爲這些密鑰都非常不同,對吧? – javamonkey79
您將獲得每個映射器的一個輸出文件。既然你需要分裂,你無法避免這種情況。行鍵正在自然移動以維護唯一鍵。由於您只配置一個reducer,因此所有mapper輸出文件都將被引導至一個reducer。因此只有一個輸出文件。 – Ramzy
謝謝,我會嘗試其中的一些 – javamonkey79