2014-06-19 2 views
0

J'essaye d'exécuter une régression logistique sur Mahout avec un fichier qui est dans HDFS - le nom du fichier est ppeng.txt avec la ligne de commande suivante.Point Mahout vers HDFS au lieu du disque local

mahout org.apache.mahout.classifier.sgd.TrainLogistic --passes 5 --rate 1 --lambda 0,5 --input ppeng.txt --Caractéristiques 21 --output test_mahout --target nbr_of_txns - catgories 2 --predictors lifetime_rev_usd_amt ntpv_12_mth_sent_usd_amt --types nn

ce fichier est en HDFS, mais, erreurs cette ligne avec une exception fichier non trouvé, sauf si je copie le fichier à ma machine locale.

Ma variable HADOOP_LOCAL est également définie sur null. L'erreur que je reçois est la suivante: quelqu'un a-t-il de l'expérience dans la résolution de ce problème? Si oui, merci de nous aider.

Exception in thread "main" java.io.FileNotFoundException: ppeng.txt (No such file or directory)** 
     at java.io.FileInputStream.open(Native Method) 
     at java.io.FileInputStream.<init>(FileInputStream.java:120) 
     at org.apache.mahout.classifier.sgd.TrainLogistic.open(TrainLogistic.java:316) 
     at org.apache.mahout.classifier.sgd.TrainLogistic.mainToOutput(TrainLogistic.java:75) 
     at org.apache.mahout.classifier.sgd.TrainLogistic.main(TrainLogistic.java:64) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68) 
     at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:139) 
     at org.apache.mahout.driver.MahoutDriver.main(MahoutDriver.java:188) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.apache.hadoop.util.RunJar.main(RunJar.java:197) 

Répondre

0

Il accède à votre système de fichiers local avec java.io.FileInputStream.open.

Pouvez-vous exécuter

hadoop fs -ls 

d'où vous exécutez le travail Mahout? Si c'est le cas, vous devez désactiver MAHOUT_LOCAL et réessayer. Mahout utilise l'installation Hadoop sur la machine à partir de laquelle vous démarrez pour déterminer où se trouvent HDFS et les traqueurs de travaux mapreduce.

Voici un article sur la commutation entre le client, le pseudo-cluster local et l'appartenance à un cluster complet sur une seule machine. Il a également mis le bon drapeau pour Mahout. Juste quelques fonctions de bash.

http://occamsmachete.com/ml/2012/07/02/how-to-switch-hadoop-confugurations/

Questions connexes