java.lang.UnsupportedOperationException:未由DistributedFileSystem FileSystem实现实现

时间:2016-01-13 12:43:17

标签: java spring-mvc hadoop

我正在使用单节点hadoop集群(2.6.2),如果有任何需要将hdfs声明为分布式。我将hdfs,core,common jar添加到项目构建路径中,还需要jar来项目lib。但我现在得到错误java.lang.UnsupportedOperationException:我没有在应用程序上下文中配置hadoop的DistributedFileSystem FileSystem实现实现。

Configuration conf = new Configuration();

conf.addResource(new Path("/usr/local/hadoop-2.6.2/etc/hadoop/core-site.xml"));
        conf.addResource(new Path("/usr/local/hadoop-2.6.2/etc/hadoop/hdfs-site.xml"));
        conf.addResource(new Path("/usr/local/hadoop-2.6.2/etc/hadoop/mapred-site.xml"));


conf.set("fs.defaultFS", "hdfs://localhost:8088");
FileSystem fileSystem = FileSystem.get(conf);

1 个答案:

答案 0 :(得分:0)

您正在使用的依赖罐似乎存在问题。

我使用的是Hadoop 2.7.1。

我试用了你的程序并在我的集群中得到了正确的结果。我得到了正确的输出hdfs作为方案。

<强>程序:

package com.myorg.hadooptests;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;

public class GetConfTest {
    public static void main(String[] args) throws Exception    {

        Configuration conf = new Configuration();

        conf.set("fs.defaultFS", "hdfs://MBALLUR:8020");
        FileSystem fs = FileSystem.get(conf);
        System.out.println(fs.getScheme());
    }
}

Maven依赖项:

<dependencies>

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <version>2.7.1</version>
    </dependency>

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-mapreduce-client-core</artifactId>
        <version>2.7.1</version>
    </dependency>

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-core</artifactId>
        <version>1.2.1</version>
    </dependency>

</dependencies>

我的类路径设置为(我在Windows上运行它):

  

E:\ HadoopTests \ target&gt; echo%CLASSPATH%   ; E:\ HDP \ Hadoop的2.7.1.2.3.0.0-2557 \等\的hadoop \; E:\ HDP \ Hadoop的2.7.1.2.3.0.0-2557 \   共享\ hadoop的\共同*; E:\ HDP \ Hadoop的2.7.1.2.3.0.0-2557 \共享\ hadoop的\ common \ lib文件*   ; E:\ HDP \ Hadoop的2.7.1.2.3.0.0-2557 \共享\的hadoop \ HDFS *; E:\ HDP \ Hadoop的2.7.1.2.3.0。   0-2557 \共享\的hadoop \ HDFS \ lib中*; E:\ HDP \ Hadoop的2.7.1.2.3.0.0-2557 \共享\ hadoop的\地图   减少。*; E:\ HDP \ Hadoop的2.7.1.2.3.0.0-2557 \共享\的hadoop \映射精简\ lib中*; E:\ HDP \公顷   DOOP-2.7.1.2.3.0.0-2557 \共享\ Hadoop的\工具*; E:\ HDP \ Hadoop的2.7.1.2.3.0.0-2557 \ SH   是\ hadoop的\工具\ lib中*; E:\ HDP \ Hadoop的2.7.1.2.3.0.0-2557 \共享\ Hadoop的\纱*; E:\ ^ h   DP \ Hadoop的2.7.1.2.3.0.0-2557 \共享\的hadoop \纱线\ lib中*