Исключение privilegedactionexception в кластеризации Mahout

#hadoop #mahout

#hadoop #mahout

Вопрос:

Я пробовал пример кластеризации Mahout. Я написал пример программы для преобразования текстовых документов в файл последовательности и файл последовательности в векторы на Java. Я получаю следующее исключение при запуске программы со всеми необходимыми созданными каталогами и копированием в нее соответствующих данных.

Цитата по блокировке 14/06/26 08:45:35 ОШИБКА безопасности.Информация о группе пользователей: исключение privilegedactionexception как:shshaikh причина: java.io.FileNotFoundException: Файл file:/home/shshaikh/ClusterWorkDir/sequence/vector/data не существует. java.io.FileNotFoundException: Файл file:/home/shshaikh/ClusterWorkDir/sequence/vector/data не существует. в org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:402) в org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:255) в org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat.listStatus(SequenceFileInputFormat.java:63) в org.apache.hadoop.mapreduce.lib.input.FileInputFormat.getSplits(FileInputFormat.java:252) в org.apache.hadoop.mapred.JobClient.writeNewSplits(JobClient.java:1054) в org.apache.hadoop.mapred.JobClient.writeSplits(JobClient.java:1071) в org.apache.hadoop.mapred.JobClient.access$ 700(JobClient.java:179) в org.apache.hadoop.mapred.JobClient$2.запустите (JobClient.java:983) в org.apache.hadoop.mapred.JobClient $2.выполнить (JobClient.java:936) в java.security.AccessController.doPrivileged(собственный метод) в javax.security.auth.Subject.doAs(Subject.java:416) в org.apache.hadoop.security.Информация о группе пользователей.doAs(UserGroupInformation.java:1190) в org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:936) в org.apache.hadoop.mapreduce.Job.submit(Задание.java: 550) в org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:580) в org.apache.mahout.vectorizer.DocumentProcessor.tokenizeDocuments(DocumentProcessor.java:93) в org.apache.mahout.vectorizer.SparseVectorsFromSequenceFiles.run(SparseVectorsFromSequenceFiles.java:257 ) в org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) в com.hello.mahout.MyZFuzzyKmeans.vectorize(MyZFuzzyKmeans.java:100) в com.hello.mahout.MyZFuzzyKmeans.main(MyZFuzzyKmeans.java:55) в sun.reflect.NativeMethodAccessorImpl.invoke0(собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) в sun.reflect.Делегирование methodaccessorimpl.invoke(делегирование methodaccessorimpl.java:43) в java.lang.reflect.Метод.invoke(Method.java:616) в org.codehaus.mojo.exec.ExecJavaMojo$1.выполнить (ExecJavaMojo.java:293) в java.lang.Thread.run(Thread.java:679)

Цитата блока

я создал векторный каталог, и программа удаляет каталог, и он завершается ошибкой с исключением FileNotFound .

Может кто-нибудь, пожалуйста, поможет решить проблему.

Спасибо 🙂

Ответ №1:

Mahout по умолчанию работает в распределенной файловой системе вместо локальной файловой системы. Поэтому, когда вы запускаете команду mahout, hadoop попытается найти файлы в HDFS, а не в local. Таким образом, вам следует сделать следующее:

  1. компакт-диск в каталог mahout /bin
  2. vi mahout
  3. найдите строку «#MAHOUT_LOCAL= true;» и измените ее на «MAHOUT_LOCAL= true;»
  4. исходный mahout

Тогда теперь он должен работать локально.