2010-04-22 4 views
2

Я запускаю свое приложение с использованием ruby ​​client: ruby ​​elastic-mapreduce -j j-20PEKMT9BRSUC --jar s3n: //sakae55/lib/edu.cit.som.jar --main- class edu.cit.som.hadoop.SOMDriver --arg s3n: // sakae55/repository/input/ecoli/--arg s3n: // sakae55/repository/output/ecoli/pl/--arg s3n: // sakae55 /repository/data/ecoli/som.txtAmazon Elastic MapReduce: Исключение из FileSystem

Тогда, я вижу следующее сообщение об ошибке:

java.lang.IllegalArgumentException: Эта файловая система объекта (файл: ///) не поддерживает доступ к request path 'hdfs: // i -10-195-207-230.ec2.internal: 9000/mnt/var/lib/hadoop/tmp/mapred/system/job_20100422122 1_0017/job.jar 'Вы можете назвать Fi eSystem.get (conf), когда вам нужно вызвать FileSystem.get (uri, 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. RawLocalFileSystem.getFileStatus (RawLocalFileSystem.java:416) at org.apache.hadoop.fs.FilterFileSystem.getFileStatus (FilterFileSystem.java:259) в org.apache.hadoop.fs.FileSystem.isDirectory (FileSystem.java:676) на org.apache.hadoop.fs.FileUtil.copy (FileUtil.java:200) на org.apache.hadoop.fs.FileSystem.copyFromLocalFile (FileSystem.java:1184) на org.apache.hadoop.fs. FileSystem.copyFromLocalFile (FileSystem.java:1160) на 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. Java: 65) на org.apache.hadoop.util.ToolRunner.run (ToolRunner.java:79) в org.apache.hadoop.mapred.JobShell.main (JobShell.java:68)

Я не знаю, почему ошибка ссылается на «file: ///», хотя все аргументы, которые я передаю, не используют схему.

ответ

1

Оказалось, что повторное использование объекта JobConf вызывает эту проблему. Изменение кода для создания нового экземпляра для каждой итерации решило проблему.

Смежные вопросы