我是靠谱客的博主 结实身影,最近开发中收集的这篇文章主要介绍Hadoop 问题java.lang.IllegalArgumentException Wrong FS: hdfs://192.168,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
在看hadoop in action 的时候,关于hdfs的操作地方,抄写代码PutMerge到eclipse上,出现了错误
Wrong FS: hdfs://192.168.96.131:9000/user/hadoop, expected: file:/
然后,上网查找了一下这个错误,说是将core-site.xml 和hdfs-site.xml拷贝到项目里去就可以,原因是访问远程的HDFS 需要通过URI来获得FileSystem.。参考链接
但是在同样的eclipse配置下,典型的wordcount程序却没有错误(这个随便百度或者谷歌一下找个hadoop安装教程,测试安装的时候都有)
结合上面两个现象,觉得问题应该出在配置问题上,于是想到Configuration对象。
于是,尝试在PutMerge中用getConf()方法,发现是需要继承Configured类。这样就不用拷贝core-site.xml 和hdfs-site.xml到项目里了
查看Configuration的文档,发现了有set方法。于是尝试了下设置一般core-sites.xml中设置的fs.defaultFS
<span style="background-color: rgb(51, 255, 255);">conf.set("fs.defaultFS", "hdfs://192.168.96.131:9000"); </span> 就成功了(这个是我的机器的设置)
附上我机器上的两个运行时候的参数: D:a hdfs://192.168.96.131:9000/user/hadoop/PutMerge(第二个参数其实可以直接设置为<pre name="code" class="java">/user/hadoop/PutMerge
)
源码如下
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.*;
public class PutMerge {
public static void main(String[] args) throws IOException {
Configuration conf = new Configuration();
System.out.println(conf);
FileSystem hdfs = FileSystem.get(conf);
FileSystem local = FileSystem.getLocal(conf);
Path inputDir = new Path(args[0]);
Path hdfsFile = new Path(args[1]);
System.out.println(123);
try {
FileStatus[] inputFiles = local.listStatus(inputDir);
FSDataOutputStream out = hdfs.create(hdfsFile);
for (int i = 0; i < inputFiles.length; i++) {
System.out.println(inputFiles[i].getPath().getName());
FSDataInputStream in = local.open(inputFiles[i].getPath());
byte buffer[] = new byte[256];
int bytesRead = 0;
while( (bytesRead = in.read(buffer)) > 0){
out.write(buffer, 0, bytesRead);
}
in.close();
}
out.close();
} catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
最后
以上就是结实身影为你收集整理的Hadoop 问题java.lang.IllegalArgumentException Wrong FS: hdfs://192.168的全部内容,希望文章能够帮你解决Hadoop 问题java.lang.IllegalArgumentException Wrong FS: hdfs://192.168所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复