2013-10-28 41 views

回答

0

作爲整個文件或讀取一個單獨的塊(說塊3)序列?

您可以通過各種機制(包括Java API)讀取文件,但無法在文件中間開始讀取(例如在塊3的開始處)。

0

Hadoop讀取一個數據塊並將每行提供給映射器以供進一步處理。此外,Hadoop客戶端在連接它們之前從不同數據節點獲取與文件相關的塊。所以,應該可以從特定的塊獲取數據。

Hadoop客戶端可能是一個很好的開始查看代碼的地方。但是,HDFS提供了文件系統抽象。不確定從特定塊讀取數據的要求。

0

假設您有對數據節點的ssh訪問權限(和適當的權限),您可以將cd指定爲存儲塊的路徑,並讀取存儲在該節點上的塊(例如,執行cat BLOCK_XXXX)。指示塊存儲位置的配置參數是dfs.datanode.data.dir,默認爲file://${hadoop.tmp.dir}/dfs/data。更多詳情here

注意:塊名由HDFS根據其內部塊ID進行編碼。只要查看他們的名字,你就不知道一個塊屬於哪個文件。

最後,我假設你想做這個調試的目的,或者只是爲了滿足你的好奇心。通常情況下,沒有理由這樣做,您應該使用HDFS Web UI或命令行工具來查看文件的內容。