2015-03-16 2 views
0

Je suis en train de lire Apache Mahout Cookbook. Mais j'ai un problème dans le chapitre 2, en créant un fichier de séquence. J'utilise Mahout 0,9Fichiers de séquence FileNotFoundException Mahout

La commande J'exécution est la suivante:

$MAHOUT_HOME/bin/mahout seqdirectory -i /home/haritz/Escritorio/work_dir/original -o /home/haritz/Escritorio/work_dir/sequencefiles 

Mais j'obtiens l'erreur suivante:

Running on hadoop, using /usr/local/hadoop/bin/hadoop and HADOOP_CONF_DIR= 
MAHOUT-JOB: /home/haritz/mahout-distribution-0.9/mahout-examples-0.9-job.jar 
15/03/16 16:45:57 INFO common.AbstractJob: Command line arguments: {--charset=[UTF-8], --chunkSize=[64], --endPhase=[2147483647], --fileFilterClass=[org.apache.mahout.text.PrefixAdditionFilter], --input=[/home/haritz/Escritorio/work_dir/original], --keyPrefix=[], --method=[mapreduce], --output=[/home/haritz/Escritorio/work_dir/sequencefiles], --startPhase=[0], --tempDir=[temp]} 
15/03/16 16:45:58 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 
15/03/16 16:45:58 INFO Configuration.deprecation: mapred.input.dir is deprecated. Instead, use mapreduce.input.fileinputformat.inputdir 
15/03/16 16:45:58 INFO Configuration.deprecation: mapred.compress.map.output is deprecated. Instead, use mapreduce.map.output.compress 
15/03/16 16:45:58 INFO Configuration.deprecation: mapred.output.dir is deprecated. Instead, use mapreduce.output.fileoutputformat.outputdir 
Exception in thread "main" java.io.FileNotFoundException: File does not exist: /home/haritz/Escritorio/work_dir/original 
    at org.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(DistributedFileSystem.java:1122) 
    at org.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(DistributedFileSystem.java:1114) 
    at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) 
    at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1114) 
    at org.apache.mahout.text.SequenceFilesFromDirectory.runMapReduce(SequenceFilesFromDirectory.java:162) 
    at org.apache.mahout.text.SequenceFilesFromDirectory.run(SequenceFilesFromDirectory.java:91) 
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84) 
    at org.apache.mahout.text.SequenceFilesFromDirectory.main(SequenceFilesFromDirectory.java:65) 
    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.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:71) 
    at org.apache.hadoop.util.ProgramDriver.run(ProgramDriver.java:144) 
    at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:152) 
    at org.apache.mahout.driver.MahoutDriver.main(MahoutDriver.java:195) 
    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) 

Quelqu'un peut-il me dire pourquoi j'obtenir cette exception? Merci!

Répondre

0
It is expecting hdfs path for input and output. give the hdfs paths. 

mahout seqdirectory -i Hdfs-Path(hdfs://ip/user/--) -o Hdfs-path(hdfs://ip/user/..) 

If you want run it on locally ,that is input from local file system and output to local file system,you need to set property in /bin/mahout shell file 

    MAHOUT_LOCAL=true 
+0

Merci, ça a marché! Je veux aussi ajouter quelque chose au cas où quelqu'un aurait le même problème. Après avoir fait ce que vous m'avez dit, j'ai ce problème: Une erreur s'est produite lors de l'initialisation de VM Impossible de réserver suffisamment d'espace pour le tas d'objets Erreur: Impossible de créer la machine virtuelle Java. La solution est assez simple: exporter MAHOUT_HEAPSIZE = 512 Je suis dans une machine virtuelle donc je n'ai pas assez de mémoire, par défaut cela prend 1000MB. – Naster