2016-10-14 65 views
0

我有一個主站和3個從站的完全分佈式模式的Hadoop設置。我試圖執行一個名爲Tasks.jar的jar文件,它將arg [0]作爲輸入目錄,將arg [1]作爲輸出目錄。Hadoop FileAlreadyExistsException:輸出目錄hdfs:// <namenode public dns>:9000 /輸入已存在

在我的Hadoop環境中,我在/ input目錄中有輸入文件,並且沒有/輸出目錄。

我檢查了上述使用hadoop fs -ls /命令

現在,當我嘗試使用下面的命令來執行我的jar文件:

hadoop jar Tasks.jar ProgrammingAssigment/Tasks /input /output' 

我得到以下異常:

[email protected]213:~$ hadoop jar Tasks.jar ProgrammingAssignment/Tasks /input /output 
16/10/14 02:26:23 INFO client.RMProxy: Connecting to ResourceManager at ec2-52-55-2-64.compute-1.amazonaws.com/172.31.5.213:8032 
Exception in thread "main" org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://ec2-52-55-2-64.compute-1.amazonaws.com:9000/input already exists 
    at org.apache.hadoop.mapreduce.lib.output.FileOutputFormat.checkOutputSpecs(FileOutputFormat.java:146) 
    at org.apache.hadoop.mapreduce.JobSubmitter.checkSpecs(JobSubmitter.java:266) 
    at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:139) 
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1290) 
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1287) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:415) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657) 
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:1287) 
    at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1308) 
    at ProgrammingAssignment.Tasks.main(Tasks.java:96) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.hadoop.util.RunJar.run(RunJar.java:221) 
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136) 
+0

向我們展示了Tasks.jar的主要方法 –

回答

0

堆棧跟蹤顯示爲hdfs://ec2-52-55-2-64.compute-1.amazonaws.com:9000/input,在您的代碼輸出目錄中提到爲/input,所以發生上述異常d。您可能需要更改輸出目錄或更改hdfs中的輸入目錄名稱。

+0

我試着更改名稱,並且得到相同的錯誤 –

+0

更改了jar文件中的輸出目錄。 –

-1

確保/ input已作爲輸入目錄傳遞,但不作爲輸出目錄。通過例外

org.apache.hadoop.mapreduce.lib.output.FileOutputFormat.checkOutputSpecs

/輸入被認爲是你的輸出direcotry。

相關問題