2011-09-28 66 views
3

看起來Hadoop MapReduce需要在文本或二進制文本中使用鍵值對結構。 實際上,我們可能會將文件拆分成要處理的塊。但密鑰可能是 分佈在整個文件中。它可能不是一個明確的切割,一個鍵後跟一個值。有沒有可以讀取這種類型的二進制文件的InputFileFormatter?我不想使用Map Reduce和Map Reduce。這會降低性能,並破壞使用map reduce的目的。 有什麼建議嗎?謝謝,Can Hadoop可以讀取任意密鑰二進制文件

回答

1

按照Hadoop : The Definitive Guide

是FileInputFormats定義通常不完全相符HDFS 塊的邏輯記錄。例如,TextInputFormat的邏輯記錄是行,它們通常會越過 HDFS邊界。這對你的 的功能沒有任何影響,例如,程序行不會被遺漏或中斷,但值得了解, ,因爲它確實意味着數據本地映射(即在同一主機上運行的映射 作爲它們的輸入數據)將執行一些遠程讀取。這造成的輕微開銷是 通常不重要。

如果文件被邊界之間的HDFS分割,那麼Hadoop框架將處理它。但是,如果您手動分割文件,則必須考慮邊界。

實際上,我們可能會將文件拆分成要處理的塊。但密鑰可能會散佈在整個文件中。它可能不是一個明確的切割,一個鍵後跟一個值。

這是什麼情況,我們可以看看這個解決方法?

+0

例如,二進制文件包含具有多字段的記錄。鑰匙遍佈各地。每個用戶選擇一段時間。如何處理Hadoop中的這種情況? – johnsam