hadoop没有scheme:file的文件系统

7uzetpgm  于 2021-06-04  发布在  Hadoop
关注(0)|答案(18)|浏览(539)

我在试着做一个简单的 NaiveBayesClassifer 使用hadoop,获取此错误

Exception in thread "main" java.io.IOException: No FileSystem for scheme: file
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1375)
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:66)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1390)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:196)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:95)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:180)
    at org.apache.hadoop.fs.Path.getFileSystem(Path.java:175)
    at org.apache.mahout.classifier.naivebayes.NaiveBayesModel.materialize(NaiveBayesModel.java:100)

代码:

Configuration configuration = new Configuration();
    NaiveBayesModel model = NaiveBayesModel.materialize(new Path(modelPath), configuration);// error in this line..
``` `modelPath` 指的是 `NaiveBayes.bin` 文件,配置对象正在打印- `Configuration: core-default.xml, core-site.xml` 我想是因为jar,有什么想法吗?
fdbelqdn

fdbelqdn16#

我假设您使用maven构建示例。
请检查您要运行的jar的内容。尤其是 META-INFO/services 目录,文件 org.apache.hadoop.fs.FileSystem . 应该有系统实现类的列表。支票行 org.apache.hadoop.hdfs.DistributedFileSystem 在hdfs和 org.apache.hadoop.fs.LocalFileSystem 对于本地文件方案。
如果是这种情况,则必须在生成期间重写引用的资源。
另一种可能是你根本没有 hadoop-hdfs.jar 但是这种可能性很低。通常如果你有正确的答案 hadoop-client 它不是一个选项。

bf1o4zei

bf1o4zei17#

对于maven,只要为hadoop hdfs添加maven依赖项(请参阅下面的链接)就可以解决这个问题。
http://mvnrepository.com/artifact/org.apache.hadoop/hadoop-hdfs/2.7.1

bksxznpy

bksxznpy18#

谢谢大卫,斯卡拉

conf.set("fs.hdfs.impl", classOf[org.apache.hadoop.hdfs.DistributedFileSystem].getName);
conf.set("fs.file.impl", classOf[org.apache.hadoop.fs.LocalFileSystem].getName);

<property>
 <name>fs.hdfs.impl</name>
 <value>org.apache.hadoop.hdfs.DistributedFileSystem</value>
</property>

相关问题