Мне нужно получить доступ к нескольким файлам в файловой системе hadoop, например. /user/.../data/somefile.txt Я понятия не имею, как получить доступ к этим файлам. У меня есть код, как показано ниже, но это не работает. Поэтому я пробовал такие вещи, как «hdfs: // user/....», «hdfs: // localhost: 50070/user/...» или каким-то образом использовал URI (хотя я действительно не знаю, как это работает).Доступ к файлу в файловой системе hadoop
Я был предоставлен вариант hadoop 1.2.1 для этой задачи, и я работаю с ubuntu на виртуальной машине и затмении (без подключаемого модуля hadoop). Я никогда раньше не работал с хаупом, так что было бы здорово, если бы вы могли мне помочь.
JobConf conf = new JobConf(TotalWordCount.class);
conf.setJobName("wordcount");
conf.setOutputKeyClass(Text.class);
conf.setOutputValueClass(IntWritable.class);
conf.setMapperClass(Map.class);
conf.setCombinerClass(Reduce.class);
conf.setReducerClass(Reduce.class);
conf.setInputFormat(TextInputFormat.class);
conf.setOutputFormat(TextOutputFormat.class);
FileInputFormat.setInputPaths(conf, new Path("/user/.../data/textfile.txt"));
FileOutputFormat.setOutputPath(conf, new Path("/user/.../output"));
LineProcessor.initializeStopWords();
JobClient.runJob(conf);
Выполнение кода выше, я получаю сообщение об ошибке, как это:
ERROR security.UserGroupInformation: PriviledgedActionException as:ds2013 cause:org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: file:/user/.../data/textfile.txt
Exception in thread "main" org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: file:/user/.../data/textfile.txt
Я также попытался что-то вроде
DistributedCache.addCacheFile((new Path("/user/.../data/textfile.txt")).toUri(), conf);
Path[] paths = DistributedCache.getLocalCacheFiles(conf);
Path cachePath = paths[0];
BufferedReader stopListReader = new BufferedReader(new FileReader(cachePath.toString()));
Но он не может найти файл.
Exception in thread "main" java.io.FileNotFoundException: File /user/.../data/textfile.txt does not exist.
Что вы подразумеваете под «этим не работает»? Могут быть много разных условий ошибки. –
ERROR security.UserGroupInformation: PriviledgedActionException as: ds2013 cause: org.apache.hadoop.mapred.InvalidInputException: Путь ввода не существует: file:/user /.../ data/textfile.txt Исключение в потоке "main" org .apache.hadoop.mapred.InvalidInputException: Путь ввода не существует: file:/user /.../ data/textfile.txt – Ben
Можете ли вы вставить содержимое вашего основного сайта.xml, особенно fs.default.name имущество? –