首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Alluxio Error:java.lang.IllegalArgumentException:错误FS

Alluxio Error:java.lang.IllegalArgumentException:错误FS
EN

Stack Overflow用户
提问于 2016-12-23 04:43:00
回答 1查看 493关注 0票数 4

我可以使用cloudera提供的一个示例jar在冲积计算上运行wordcount,使用:

代码语言:javascript
复制
sudo -u hdfs hadoop jar /usr/lib/hadoop-0.20-mapreduce/hadoop-examples.jar wordcount -libjars /home/nn1/alluxio-1.2.0/core/client/target/alluxio-core-client-1.2.0-jar-with-dependencies.jar alluxio://nn1:19998/wordcount alluxio://nn1:19998/wc1

这是一次成功。

但是当我使用附带的代码创建的jar时,我无法运行它,这也是一个示例wordcount示例代码

代码语言:javascript
复制
sudo -u hdfs hadoop jar /home/nn1/HadoopWordCount-0.0.1-SNAPSHOT-jar-with-dependencies.jar edu.am.bigdata.C45TreeModel.C45DecisionDriver -libjars /home/nn1/alluxio-1.2.0/core/client/target/alluxio-core-client-1.2.0-jar-with-dependencies.jar alluxio://10.30.60.45:19998/abdf alluxio://10.30.60.45:19998/outabdf

上面的代码是使用maven Pom.xml文件包含的。

代码语言:javascript
复制
 <dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-core</artifactId>
    <version>2.6.0-mr1-cdh5.4.5</version>
     </dependency>
     <dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-common</artifactId>
    <version>2.6.0-cdh5.4.5</version>
     </dependency>

您能帮我在冲积器集群中运行我的字数程序吗?希望没有额外的配置添加到pom文件中运行相同的配置。

运行jar后,将得到以下错误:

java.lang.IllegalArgumentException:错误FS:冲积://10.30.60.45:19998/outabdf,预期: hdfs://10.30.60.45:8020在org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:657) at org.apache.hadoop.hdfs.DistributedFileSystem.getPathName(DistributedFileSystem.java:194) at org.apache.hadoop.hdfs.DistributedFileSystem.access$000(DistributedFileSystem.java:106) at org.apache.hadoop.hdfs.DistributedFileSystem$19.doCall(DistributedFileSystem.java:1215) at org.apache.hadoop.hdfs.DistributedFileSystem$19.doCall(DistributedFileSystemorg.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1211) at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1412) at edu.WordCount.run(WordCount.java:47) org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) at edu.WordCount.main(WordCount )( sun.reflect.NativeMethodAccessorImpl.invoke0(Native方法)在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57),sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43),java.lang.reflect.Method.invoke(Method.java:601),org.apache.hadoop.util.RunJar.run(RunJar.java:221),org.apache.hadoop.util.RunJar.main(RunJar.java:136)

EN

回答 1

Stack Overflow用户

发布于 2018-10-03 20:33:17

这个问题来自于对

FileSystem fs = FileSystem.get(conf);

在101线。由FileSystem创建的FileSystem.get(conf)只支持由Hadoop的fs.defaultFS属性定义的方案的路径。若要修复错误,请将该行更改为

FileSystem fs = FileSystem.get(URI.create("alluxio://nn1:19998/", conf)

通过传递URI,您可以重写fs.defaultFS,从而使所创建的FileSystem能够使用alluxio://方案支持路径。

您还可以通过修改您的fs.defaultFS中的core-site.xml来修复错误。

代码语言:javascript
复制
<property>
  <name>fs.defaultFS</name>
  <value>alluxio://nn1:19998/</value>
</property>

但是,这可能会影响共享core-site.xml文件的其他系统,因此我建议第一种将alluxio:// URI传递给FileSystem.get()的方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41295291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档