Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop Alluxio错误:java.lang.IllegalArgumentException:错误的FS_Hadoop_Mapreduce_Hdfs_Cloudera Cdh_Alluxio - Fatal编程技术网

Hadoop Alluxio错误:java.lang.IllegalArgumentException:错误的FS

Hadoop Alluxio错误:java.lang.IllegalArgumentException:错误的FS,hadoop,mapreduce,hdfs,cloudera-cdh,alluxio,Hadoop,Mapreduce,Hdfs,Cloudera Cdh,Alluxio,我能够使用cloudera提供的示例jar在alluxio上运行wordcount,使用: 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:1

我能够使用cloudera提供的示例jar在alluxio上运行wordcount,使用:

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示例

上面的代码是使用maven构建的 xml文件包含

 <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>

org.apache.hadoop
hadoop内核
2.6.0-mr1-cdh5.4.5
org.apache.hadoop
hadoop通用
2.6.0-cdh5.4.5
你能帮我在alluxio集群中运行我的wordcount程序吗。希望没有额外的配置添加到pom文件中运行相同的

运行jar后,我遇到以下错误:

java.lang.IllegalArgumentException:错误的FS: alluxio://10.30.60.45:19998/outabdf,预计:hdfs://10.30.60.45:8020 位于org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:657) 位于org.apache.hadoop.hdfs.DistributedFileSystem.getPathName(DistributedFileSystem.java:194) 在org.apache.hadoop.hdfs.DistributedFileSystem.access$000(DistributedFileSystem.java:106) 位于org.apache.hadoop.hdfs.DistributedFileSystem$19.doCall(DistributedFileSystem.java:1215) 位于org.apache.hadoop.hdfs.DistributedFileSystem$19.doCall(DistributedFileSystem.java:1211) 位于org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) 位于org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1211) 位于org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1412) 运行(WordCount.java:47) 位于org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 位于edu.WordCount.main(WordCount.java:23) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在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)


问题来自于打电话给

FileSystem fs=FileSystem.get(conf)

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

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

通过传递
URI
,您可以覆盖
fs.defaultFS
,从而使创建的
文件系统能够支持使用
alluxio://
方案的路径

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

<property>
  <name>fs.defaultFS</name>
  <value>alluxio://nn1:19998/</value>
</property>

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

<property>
  <name>fs.defaultFS</name>
  <value>alluxio://nn1:19998/</value>
</property>