impossible d'exécuter hadoop wordcount exemple?
Je suis en cours d'exécution hadoop wordcount exemple dans le seul nœud de l'environnement sur ubuntu 12.04 dans vmware.
j'ai l'exécution de l'exemple, comme ceci:--
hadoop@master:~/hadoop$ hadoop jar hadoop-examples-1.0.4.jar wordcount
/home/hadoop/gutenberg//home/hadoop/gutenberg-output
j'ai le fichier d'entrée au-dessous de lieu:
/home/hadoop/gutenberg
et un emplacement pour le fichier de sortie est:
/home/hadoop/gutenberg-output
quand je lance wordcount programme, j'obtiens les erreurs suivantes:--
13/04/18 06:02:10 INFO mapred.JobClient: Cleaning up the staging area
hdfs://localhost:54310/home/hadoop/tmp/mapred/staging/hadoop/.staging/job_201304180554_0001
13/04/18 06:02:10 ERROR security.UserGroupInformation: PriviledgedActionException
as:hadoop cause:org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory
/home/hadoop/gutenberg-output already exists
org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory
/home/hadoop/gutenberg-output already exists at
org.apache.hadoop.mapreduce.lib.output.FileOutputFormat.checkOutputSpecs(FileOutputFormat.j
ava:137) at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:887) at
org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:850) at
java.security.AccessController.doPrivileged(Native Method) at
javax.security.auth.Subject.doAs(Subject.java:416) at
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121) at
org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:850) at
org.apache.hadoop.mapreduce.Job.submit(Job.java:500) at
org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:530) at
org.apache.hadoop.examples.WordCount.main(WordCount.java:67) 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:616) at
org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68)
at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:139) at
org.apache.hadoop.examples.ExampleDriver.main(ExampleDriver.java:64) 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:616) at
org.apache.hadoop.util.RunJar.main(RunJar.java:156) hadoop@master:~/hadoop$ bin/stop-
all.sh Warning: $HADOOP_HOME is deprecated. stopping jobtracker localhost: stopping
tasktracker stopping namenode localhost: stopping datanode localhost: stopping
secondarynamenode hadoop@master:~/hadoop$
OriginalL'auteur Sandeep vashisth | 2013-04-18
Vous devez vous connecter pour publier un commentaire.
Supprimer le fichier de sortie existe déjà, ou d'une sortie dans un fichier différent.
(Je suis un peu curieux de ce que d'autres interprétations du message d'erreur que vous.)
Comment êtes-vous en regardant le fichier? I. e., précis de commande(s)?
je peux voir répertoire avec la commande suivante:-- bin/hadoop dfs -ls /home/hadoop, mais pas en mesure de voir à l'explorer.
À moins que votre explorer est configuré pour monter des systèmes de fichiers HDFS d'une certaine manière, ceci n'est pas surprenant.
merci u sir merci beaucoup...
OriginalL'auteur Dave Newton
Comme Dave (et les exceptions) dit, votre répertoire de sortie existe déjà. Vous avez besoin soit de sortie vers un autre répertoire ou supprimer l'existant tout d'abord, à l'aide de:
OriginalL'auteur highlycaffeinated
Si vous avez créé votre propre .jar et tente de l'exécuter, de payer à l'attention de:
Afin de l'exécuter votre travail, vous avez dû avoir écrit quelque chose comme ceci:
Mais si vous regardez de plus près à votre code de pilote, vous verrez que vous avez défini
arg[0]
comme entrée, etarg[1]
que votre sortie... je vais vous le montrer:Mais, hadoop est de prendre
arg[0
] comme<package-path>
au lieu de<input-in-hdfs-path>
et arg[1] comme<input-in-hdfs-path>
au lieu de<output-in-hdfs-path>
Afin de le faire fonctionner, vous devez utiliser:
Avec
arg[1]
etarg[2]
, afin d'en obtenir les bonnes choses! 🙂Espérons qu'il a aidé. Des acclamations.
OriginalL'auteur Thiago Messias
vérifier si il est 'tmp', dossier ou pas.
hadoop fs -ls /
si vous voyez le dossier de sortie " ou " tmp " supprimer les deux (compte tenu de la non exécution de travaux actifs)
hadoop fs -rmr /tmp
OriginalL'auteur Nuray Altin