Hadoop2.2.0二次开发报错:No FileSystem for scheme: hdfs

2022-06-29 20:53:58 浏览数 (1)

当引入Hadoop-common-2.2.0.jar包进行二次开发,比如读写HDFS文件时,初次运行报错。

java.io.IOException: No FileSystem for scheme: hdfs         at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2421)         at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2428)         at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:88)         at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2467)         at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2449)         at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:367)         at FileCopyToHdfs.readFromHdfs(FileCopyToHdfs.java:65)         at FileCopyToHdfs.main(FileCopyToHdfs.java:26)

这是因为该包下默认的core-default.xml没有配置如下属性:

<property> <name>fs.hdfs.impl</name> <value>org.apache.hadoop.hdfs.DistributedFileSystem</value> <description>The FileSystem for hdfs: uris.</description> </property>

上属性指定fs.hdfs.impl的实现类。

添加完后,问题解决。

建议下载hadoop-2.2.0源码,在源码修改core-default.xml文件后再编译打包,再在二次开发的工程引入新的jar包。

参考:http://www.linuxidc.com/Linux/2014-01/95943.htm

0 人点赞