2010-04-22 2 views
2

ruby ​​클라이언트를 사용하여 응용 프로그램을 실행합니다. ruby ​​elastic-mapreduce -j j-20PEKMT9BRSUC --jar s3n : //sakae55/lib/edu.cit.som.jar --main- edu.cit.som.hadoop.SOMDriver --arg s3n : // sakae55/repository/input/ecoli/--arg s3n : // sakae55/repository/output/ecoli/pl/--arg s3n : // sakae55Amazon Elastic MapReduce : FileSystem의 예외

java.lang.IllegalArgumentException가 :이 파일 시스템 오브젝트 (파일 : ///)에 대한 액세스를 지원하지 않는 그런

/repository/data/ecoli/som.txt, 나는 다음과 같은 오류를보고하고 요청 경로 'hdfs : // i -10-195-207-230.ec2.internal : 9000/mnt/var/lib/hadoop/tmp/mapred/system/job_20100422122 1_0017/job.jar '경로를 지원하는 파일 시스템을 얻으려면 FileSystem.get (uri, conf)를 호출해야 할 때 Fi eSystem.get (conf)를 호출했을 수 있습니다. at org.apache.hadoop.fs.FileSystem.checkPath (FileSystem.java:320) at org.apache.hadoop.fs.RawLocalFileSystem.pathToFile (RawLocalFileSystem.java:52) at org.apache.hadoop.fs. (FileSystem.java:676)의 에서 RawLocalFileSystem.getFileStatus at org.apache.hadoop.fs.FileUtil.copy (FileUtil.java:200) at org.apache.hadoop.fs.FileSystem.copyFromLocalFile (FileSystem.java:1184) at org.apache.hadoop.fs. FileSystem.copyFromLocalFile (FileSystem.java:1160) at org.apache.hadoop.fs.FileSystem.copyFromLocalFile (FileSystem.java:1132) at org.apache.hadoop.mapred.JobClient.configureCommandLineOptions (JobClient.java:662) at org.apache.hadoop.mapred.JobClient.submitJob (JobClient.java:729) at org.apache.hadoop.mapred. JobClient.runJob (JobClient.java:1026) at edu.cit.som.hadoop.SOMDriver.runIteration (SOMDriver.java:106) at edu.cit.som.hadoop.SOMDriver.train (SOMDriver.java:69) at edu.cit.som.hadoop.SOMDriver.run (SOMDriver.java:52) at org.apache.hadoop.util.ToolRunner.run (ToolRunner.java:65) at org.apache.hadoop.util. ToolRunner.run (ToolRunner.java:79) at edu.cit.som.hadoop.SOMDriver.main (SOMDriver.java:36) at sun.reflect.NativeMethodAccessorImpl.invoke0 (기본 방법) at sun.reflect.N ativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)에서 java.lang.reflect.Method.invoke (Method.java:597)에서 org.apache에서 . hadoop.util.RunJar.main (RunJar.java:155) at org.apache.hadoop.mapred.JobShell.run (JobShell.java:54) at org.apache.hadoop.util.ToolRunner.run (ToolRunner. 자바 : org.apache.hadoop.util.ToolRunner.run (ToolRunner.java:79 65) ) org.apache.hadoop.mapred.JobShell.main (JobShell.java:68에서)

내가 필자가 전달한 모든 인수가 스키마를 사용하지 않더라도 오류가 "file : ///"을 참조하는 이유를 모르겠습니다.

답변

1

JobConf 개체를 다시 사용하면이 문제가 발생하는 것으로 나타났습니다. 반복 할 때마다 새로운 인스턴스를 생성하도록 코드를 변경하면 문제가 해결됩니다.