我可以使用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示例代码
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文件构建的,包含
<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>
你能帮我在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(分布式文件系统)。java:1211)位于org.apache.hadoop.fs.filesystem.exists(filesystem。java:1412)在edu.wordcount.run(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(方法。java:601)在org.apache.hadoop.util.runjar.run(runjar。java:221)在org.apache.hadoop.util.runjar.main(runjar。java:136)
1条答案
按热度按时间lvmkulzt1#
问题出在打电话给
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
```fs.defaultFS
alluxio://nn1:19998/