教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

如何從HDFS下載文件到本地?

更新時間:2023年02月03日12時01分 來源:傳智教育 瀏覽次數(shù):

好口碑IT培訓

  在HDFS_CRUD.java文件中添加一個testDownloadFileToLocal()方法,來實現(xiàn)從HDFS中下載文件到本地系統(tǒng)的功能,具體代碼如下:

//從HDFS中復(fù)制文件到本地文件系統(tǒng)
@Test
public void testDownloadFileToLocal() throws IllegalArgumentException,
   IOException{
    //下載文件
    fs.copyToLocalFile(new Path("/testFile"), new Path("D:/"));
      fs.close();
}

  從上述代碼可以看出,可以通過FileSystem對象的copyToLocalFile()方法從HDFS上下載文件到本地。copyToLocalFile()方法接收兩個參數(shù),第一個參數(shù)是HDFS上的文件路徑,第二個參數(shù)是下載到本地的目標路徑。

  注意:在Windows平臺開發(fā)HDFS項目時,若不設(shè)置Hadoop開發(fā)環(huán)境,則會報以下錯誤:

java.io.IOException: (null) entry in command string: null chmod 0644 D:\testFile

  解決方式:

  (1)根據(jù)教材提示,安裝配置Windows平臺Hadoop(注意,配置后必須重啟電腦),運行沒有問題。

  (2)直接使用下載的Linux平臺下的Hadoop壓縮包進行解壓,然后在解壓包bin目錄下額外添加Windows相關(guān)依賴文件(winutils.exe、winutils.pdb、hadoop.dll),然后進行Hadoop環(huán)境變量配置(注意,配置后必須重啟電腦),運行同樣沒有問題。

  (3)使用FileSystem自帶的方法即使不配置Windows平臺Hadoop也可以正常運行(這種方法下載后就是沒有附帶一個類似.testFile.crc的校驗文件):

fs.copyToLocalFile(false,new Path("/testFile"), new Path("D:/"),true);

0 分享到:
和我們在線交談!