异常java.lang.IllegalArgumentException: Wrong FS: hdfs:/, expected: file:///

 

在hadoop-2.2.0版本中对hdfs进行简单的测试操作,代码如下所示

Configuration conf = new Configuration();
try {FileSystem fs = FileSystem.get(conf);Path f = new Path("hdfs:///dfs_operator.txt");FSDataOutputStream os = fs.create(f, true);int i = 0;for (i = 0; i < 10; ++i)os.writeChars("test");os.close();
} catch (IOException e) {e.printStackTrace();
}

 

 执行报错信息如下:

Exception in thread "main" java.lang.reflect.InvocationTargetExceptionat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:601)at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.IllegalArgumentException: Wrong FS: hdfs:/, expected: file:///at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:642)at org.apache.hadoop.fs.RawLocalFileSystem.pathToFile(RawLocalFileSystem.java:69)at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:419)at org.apache.hadoop.fs.ChecksumFileSystem.mkdirs(ChecksumFileSystem.java:584)at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:437)at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:424)at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:905)at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:886)at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:783)at com.ailk.hadoopdemo.DFSOperator.main(DFSOperator.java:22)... 5 more

 解决方法一:

// explicitely add other config files// PASS A PATH NOT A STRING!conf.addResource(newPath("/home/hadoop/conf/core-site.xml"));

解决方法二:

    把hadoop集群上的core-site.xml和hdfs-site.xml放到工程的src目录下

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部