如果需要将hdfs声明为分布式的,我将使用单节点hadoop集群(2.6.2)。我添加了hdfs、core、common jar到项目构建路径,也需要jar到项目库。但是我现在得到了错误java.lang.unsupportedoperationexception:不是由我在应用程序上下文中配置的分布式文件系统实现实现的。
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条答案
按热度按时间hs1ihplo1#
您使用的依赖jar似乎有问题。
我正在使用hadoop2.7.1。
我试用了你的程序,在群集中得到了正确的结果。我得到了正确的输出
hdfs
作为计划。课程:
maven依赖项:
我的类路径设置为(我正在windows上运行此操作):
e:\hadooptests\target>echo%classpath%。;e:\hdp\hadoop-2.7.1.2.3.0.0-2557\etc\hadoop\;e:\hdp\hadoop-2.7.1.2.3.0.0-2557\share\hadoop\common*;e:\hdp\hadoop-2.7.1.2.3.0.0-2557\share\hadoop\common\lib*;e:\hdp\hadoop-2.7.1.2.3.0.0-2557\share\hadoop\hdfs*;电子邮件:\hdp\hadoop-2.7.1.2.3.0。0-2557\share\hadoop\hdfs\lib*;e:\hdp\hadoop-2.7.1.2.3.0.0-2557\share\hadoop\map reduce*;e:\hdp\hadoop-2.7.1.2.3.0.0-2557\share\hadoop\mapreduce\lib*;e:\hdp\ha doop-2.7.1.2.3.0.0-2557\share\hadoop\tools*;e:\hdp\hadoop-2.7.1.2.3.0.0-2557\sh are\hadoop\tools\lib*;e:\hdp\hadoop-2.7.1.2.3.0.0-2557\share\hadoop\yarn*;电子邮件:\h dp\hadoop-2.7.1.2.3.0.0-2557\share\hadoop\yarn\lib*