问题: No FileSystem for scheme: file 如何解决?
描述:

Hadoop 版本:2.7.3
问题出在下面的语句:

URL. setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());

完整代码:
public class Test001 {
static{
URL. setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
}
public void testURL(){
String path = "hdfs://hadoop.master:8020/input/mapred-site.xml.template";
InputStream input= null;
try {
input= new URL( path).openStream();
IOUtils. copyBytes(input, System.out, 4096, false );
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
IOUtils. closeStream(input);
}
}
public static void main(String[] args){
Test001 obj = new Test001();
obj.testURL();
}
}

异常信息:
Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.RuntimeException: java.io.IOException: No FileSystem for scheme: file
at org.apache.hadoop.fs.FsUrlStreamHandlerFactory.(FsUrlStreamHandlerFactory.java:64)
at org.apache.hadoop.fs.FsUrlStreamHandlerFactory.(FsUrlStreamHandlerFactory.java:55)
at com.idbk.test.hadoop.Test001.(Test001.java:15)
Caused by: java.io.IOException: No FileSystem for scheme: file
at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2660)
at org.apache.hadoop.fs.FsUrlStreamHandlerFactory.(FsUrlStreamHandlerFactory.java:62)
... 2 more

解决方案1:

或者在代码中加入


   hadoopConfig.set("fs.hdfs.impl", 
        org.apache.hadoop.hdfs.DistributedFileSystem.class.getName()
    );
    hadoopConfig.set("fs.file.impl",
        org.apache.hadoop.fs.LocalFileSystem.class.getName()
    );
解决方案2:

看看你的 core-site.xml 

上一篇请让我吐槽一下sqoop2~~~一个小白的初体验
下一篇OpenStack Days China会议将于7月14-15日在北京国家会议中心盛大召开
明星图片
相关文章
《 No FileSystem for scheme: file 如何解决?》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)