“错误的FS ...期望:file:///”当尝试从Java中的HDFS复制FromLocalFile时

时间:2017-04-01 09:45:34

标签: java hadoop hdfs hadoop2

我正在尝试将 abc.json port / example_File / 2017 复制到HDFS中的另一个位置 / port / example_File / 2018 , 通过以下代码

String exampleFile= "hdfs://port/example_File/2017/abc.json"
String targetFile="hdfs://port/example_File/2018"
hdfs.copyFromLocalFile(new Path(exampleFile),new Path(targetFile))

我正处于异常

之下
    org.jboss.resteasy.spi.UnhandledException: 
java.lang.IllegalArgumentException: Wrong FS:
 hdfs://port/example_File/2017/abc.json, expected: file:///

如何在HDFS中将文件从一个位置复制到另一个位置

谢谢,

1 个答案:

答案 0 :(得分:1)

copyFromLocal是将文件从Local Filesystem复制到HDFS。

要复制HDFS群集中的文件,请使用FileUtil.copy()并为srcFSdstFs指定相同的文件系统。

在HDFS群集内或两个不同HDFS群集之间复制大量文件时使用DistCp。请参阅DistCp Java API here