Cloudera Quickstart VM illegalArguementException:错误的FS:hdfs:expected:file: [英] Cloudera Quickstart VM illegalArguementException: Wrong FS: hdfs: expected: file:

查看:235
本文介绍了Cloudera Quickstart VM illegalArguementException:错误的FS:hdfs:expected:file:的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个简单的java代码将文本文件从本地复制到hdfs。我正在使用cloudera的快速启动虚拟机。

 配置conf = new Configuration(); 
conf.addResource(new Path(/ etc / hadoop / conf / core-site.xml));
conf.addResource(new Path(/ etc / hadoop / conf / hdfs-site.xml));
FileSystem fs = FileSystem.get(conf);
fs.copyFromLocalFile(new Path(/ home / cloudera / workspace / Downloader / output / data.txt),
new Path(hdfs://quickstart.cloudera:8020 / user / cloudera /));

运行此代码后,我收到此错误:



线程main中的异常java.lang.IllegalArgumentException:错误的FS:hdfs://quickstart.cloudera:8020 / user / cloudera,expected:file:///
在org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:381)
在org.apache.hadoop.fs.RawLocalFileSystem.pathToFile(RawLocalFileSystem.java:55)
在org .apache.hadoop.fs.LocalFileSystem.pathToFile(LocalFileSystem.java:61)
在org.apache.hadoop.fs.LocalFileSystem.exists(LocalFileSystem.java:51)
在org.apache.hadoop .fs.FileUtil.checkDest(FileUtil.java:355)
在org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:211)
在org.apache.hadoop.fs.FileUtil .copy(FileUtil.java:163)
在org.apache.hadoop.fs.LocalFileSystem.copyFromLocalFile(LocalFileSystem.java:67)
在org.apache.hadoop.fs.FileSystem.copyFromLocalFile(FileSystem .java:1143)

我可以做错什么?

解决方案

我解决了这个问题。您必须注意添加到类路径中的那种jar文件,特别是在使用cloudera quickstart vm时。如果可用,请使用cloudera提供的jar文件。它们可以在这个文件夹中找到:/ usr / lib / hadoop / client /
这段代码可以正常工作,没有任何问题。

 配置conf = new Configuration(); 
conf.addResource(new Path(/ etc / hadoop / conf / core-site.xml));
conf.addResource(new Path(/ etc / hadoop / conf / hdfs-site.xml));
FileSystem fs = FileSystem.get(conf);
fs.copyFromLocalFile(new Path(/ home / cloudera / workspace / Downloader / output / data.txt),
new Path(hdfs://quickstart.cloudera:8020 / user / cloudera /));


I have a simple java code to copy a text file from my local to the hdfs. I am using cloudera's quickstart virtual machine.

Configuration conf = new Configuration();
conf.addResource(new Path("/etc/hadoop/conf/core-site.xml"));
conf.addResource(new Path("/etc/hadoop/conf/hdfs-site.xml"));
FileSystem fs = FileSystem.get(conf);
fs.copyFromLocalFile(new Path("/home/cloudera/workspace/Downloader/output/data.txt"), 
                          new Path("hdfs://quickstart.cloudera:8020/user/cloudera/"));

I get this error after running this code:

Exception in thread "main" java.lang.IllegalArgumentException: Wrong FS: hdfs://quickstart.cloudera:8020/user/cloudera, expected: file:///
at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:381)
at org.apache.hadoop.fs.RawLocalFileSystem.pathToFile(RawLocalFileSystem.java:55)
at org.apache.hadoop.fs.LocalFileSystem.pathToFile(LocalFileSystem.java:61)
at org.apache.hadoop.fs.LocalFileSystem.exists(LocalFileSystem.java:51)
at org.apache.hadoop.fs.FileUtil.checkDest(FileUtil.java:355)
at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:211)
at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:163)
at org.apache.hadoop.fs.LocalFileSystem.copyFromLocalFile(LocalFileSystem.java:67)
at org.apache.hadoop.fs.FileSystem.copyFromLocalFile(FileSystem.java:1143)

What could I be doing wrong?

解决方案

I resolved this problem. You have to be careful with the kind of jar files you add to your classpath especially when working with cloudera quickstart vm. If available, use jar files provided by cloudera. They can be found in this folder: /usr/lib/hadoop/client/ This code will work fine without any problems.

Configuration conf = new Configuration();
conf.addResource(new Path("/etc/hadoop/conf/core-site.xml"));
conf.addResource(new Path("/etc/hadoop/conf/hdfs-site.xml"));
FileSystem fs = FileSystem.get(conf);
fs.copyFromLocalFile(new Path("/home/cloudera/workspace/Downloader/output/data.txt"), 
                      new Path("hdfs://quickstart.cloudera:8020/user/cloudera/"));

这篇关于Cloudera Quickstart VM illegalArguementException:错误的FS:hdfs:expected:file:的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆