[英]Alluxio Error:java.lang.IllegalArgumentException: Wrong FS
我可以使用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
這是成功的。
但是當我使用使用ATTACHED CODE創建的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 at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:657 )org.apache.hadoop.hdfs.DistributedFileSystem.getPathName(DistributedFileSystem.java:194)atg.apache.hadoop.hdfs.DistributedFileSystem.access $ 000(DistributedFileSystem.java:106)org.apache.hadoop.hdfs.DistributedFileSystem位於org.apache.hadoop.hdfs.DistributedFileSystem $ 19.doCall(DistributedFileSystem.java:1211)的org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)at $ 19.doCall(DistributedFileSystem.java:1215) org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1211)位於ordu.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1412)的edu.WordCount.run(WordCount.java:47) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)at edu.WordCount.main(WordCount.java:23)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)a 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)的sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)atg的java.lang.reflect.Method.invoke(Method.java:601)。 apache.hadoop.util.RunJar.run(RunJar.java:221)at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
問題來自對此的呼吁
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
,使用alluxio://
方案啟用創建的FileSystem
以支持路徑。
您還可以通過修改core-site.xml
fs.defaultFS
來修復錯誤
<property>
<name>fs.defaultFS</name>
<value>alluxio://nn1:19998/</value>
</property>
但是,這可能會影響共享core-site.xml
文件的其他系統,所以我建議第一種方法將alluxio://
URI傳遞給FileSystem.get()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.