教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

如何从HDFS下载文件到本地?

更新时间:2023年02月03日12时01分 来源:传智教育 浏览次数:

好口碑IT培训

  在HDFS_CRUD.java文件中添加一个testDownloadFileToLocal()方法,来实现从HDFS中下载文件到本地系统的功能,具体代码如下:

//从HDFS中复制文件到本地文件系统
@Test
public void testDownloadFileToLocal() throws IllegalArgumentException,
   IOException{
    //下载文件
    fs.copyToLocalFile(new Path("/testFile"), new Path("D:/"));
      fs.close();
}

  从上述代码可以看出,可以通过FileSystem对象的copyToLocalFile()方法从HDFS上下载文件到本地。copyToLocalFile()方法接收两个参数,第一个参数是HDFS上的文件路径,第二个参数是下载到本地的目标路径。

  注意:在Windows平台开发HDFS项目时,若不设置Hadoop开发环境,则会报以下错误:

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

  解决方式:

  (1)根据教材提示,安装配置Windows平台Hadoop(注意,配置后必须重启电脑),运行没有问题。

  (2)直接使用下载的Linux平台下的Hadoop压缩包进行解压,然后在解压包bin目录下额外添加Windows相关依赖文件(winutils.exe、winutils.pdb、hadoop.dll),然后进行Hadoop环境变量配置(注意,配置后必须重启电脑),运行同样没有问题。

  (3)使用FileSystem自带的方法即使不配置Windows平台Hadoop也可以正常运行(这种方法下载后就是没有附带一个类似.testFile.crc的校验文件):

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

0 分享到:
和我们在线交谈!