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

全國(guó)咨詢/投訴熱線:400-618-4000

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

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

好口碑IT培訓(xùn)

  在HDFS_CRUD.java文件中添加一個(gè)testDownloadFileToLocal()方法,來(lái)實(shí)現(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();
}

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

  注意:在Windows平臺(tái)開發(fā)HDFS項(xiàng)目時(shí),若不設(shè)置Hadoop開發(fā)環(huán)境,則會(huì)報(bào)以下錯(cuò)誤:

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

  解決方式:

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

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

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

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

0 分享到:
和我們?cè)诰€交談!