我正在使用单节点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);
答案 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中*