6
votes

Hadoop ne lance que le travail local par défaut pourquoi?

J'ai écrit mon propre programme Hadoop et je peux exécuter en utilisant le mode pseudo distribué dans mon propre ordinateur portable, cependant, lorsque je mets le programme dans le cluster, qui peut exécuter l'exemple pot de hadoop, il lance par défaut le travail local bien que je Indiquez le chemin de fichier HDFS, ci-dessous est la sortie, donnez des suggestions?

./hadoop -jar MyRandomForest_oob_distance.jar  hdfs://montana-01:8020/user/randomforest/input/genotype1.txt hdfs://montana-01:8020/user/randomforest/input/phenotype1.txt hdfs://montana-01:8020/user/randomforest/output1_distance/ hdfs://montana-01:8020/user/randomforest/input/genotype101.txt hdfs://montana-01:8020/user/randomforest/input/phenotype101.txt 33 500 1
12/03/16 16:21:25 INFO jvm.JvmMetrics: Initializing JVM Metrics with processName=JobTracker, sessionId=
12/03/16 16:21:25 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.
12/03/16 16:21:25 INFO mapred.JobClient: Running job: job_local_0001
12/03/16 16:21:25 INFO mapred.MapTask: io.sort.mb = 100
12/03/16 16:21:25 INFO mapred.MapTask: data buffer = 79691776/99614720
12/03/16 16:21:25 INFO mapred.MapTask: record buffer = 262144/327680
12/03/16 16:21:25 WARN mapred.LocalJobRunner: job_local_0001
java.io.FileNotFoundException: File /user/randomforest/input/genotype1.txt does not exist.
    at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:361)
    at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:245)
    at org.apache.hadoop.fs.ChecksumFileSystem$ChecksumFSInputChecker.<init>(ChecksumFileSystem.java:125)
    at org.apache.hadoop.fs.ChecksumFileSystem.open(ChecksumFileSystem.java:283)
    at org.apache.hadoop.fs.FileSystem.open(FileSystem.java:356)
    at Data.Data.loadData(Data.java:103)
    at MapReduce.DearMapper.loadData(DearMapper.java:261)
    at MapReduce.DearMapper.setup(DearMapper.java:332)
    at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:142)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:621)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305)
    at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:177)
12/03/16 16:21:26 INFO mapred.JobClient:  map 0% reduce 0%
12/03/16 16:21:26 INFO mapred.JobClient: Job complete: job_local_0001
12/03/16 16:21:26 INFO mapred.JobClient: Counters: 0
Total Running time is: 1 secs


0 commentaires

3 Réponses :


10
votes

localJobrunner a été choisi car votre configuration a le plus probablement le paramètre Mapred.job.tracker code> de la propriété sur local code> ou n'a pas été défini du tout (auquel cas la valeur par défaut est local). Pour vérifier, accédez à "Où que vous ayez extrait / installé Hadoop" / etc / Hadoop / et voyez si le fichier Mapred-Site.xml existe (pour moi, un fichier appelé mappé-site.xml.template était là). Dans ce fichier (ou le créer si cela n'existe pas) Assurez-vous qu'il dispose de la propriété suivante:

hadoop jar MyRandomForest_oob_distance.jar -jt hostname:port hdfs://montana-01:8020/user/randomforest/input/genotype1.txt hdfs://montana-01:8020/user/randomforest/input/phenotype1.txt hdfs://montana-01:8020/user/randomforest/output1_distance/ hdfs://montana-01:8020/user/randomforest/input/genotype101.txt hdfs://montana-01:8020/user/randomforest/input/phenotype101.txt 33 500 1
  • Voir la source de org.apache.haadoop.mapred.jobclient.init (jobconf) code> li> ul>

    Quelle est la valeur de cette propriété de configuration dans la configuration Hadoop sur la machine que vous soumettez cela de? Confirmez également que l'exécutable Hadoop Vous exécutez des références de cette configuration (et que vous n'avez pas de plus de 2 installations configurées différemment) - Type qui Hadoop code> et trace des symboles que vous rencontrez. P> Sinon, vous pouvez remplacer cela lorsque vous soumettez votre travail, si vous connaissez l'hôte Jobtracker et le numéro de port à l'aide de l'option -jt: p> xxx pré> p>


4 commentaires

Je trouve enfin la raison, c'est parce que j'utilise -jar au lieu de JAR lors de l'exécution du programme .. :(


@ user974270 Mais pourquoi il lancera un travail local lors de l'utilisation -jar. Connaissez-vous la raison?


Je suis confronté au même problème, mais dans le mode distribué Psuedo .. Stackoverflow.com/questions/32787996/... . S'il vous plaît aider.


Quelle est l'interaction entre ces deux paramètres: mapred.job.tracker et mapreduce.framework.name ? Est-ce que l'on remplace l'autre? Est-ce que l'on demande à MR1 et à l'autre pour MR2? Que se passe-t-il lorsque vous soumettez un emploi MR1 dans un environnement de fil?



2
votes

J'ai eu le même problème que chaque tâche Mapreduce V2 (MRV2) ou la tâche de fil uniquement avec le Mapred.Localjobrunner

export HADOOP_MAPRED_HOME=/usr/lib/hadoop-mapreduce


0 commentaires

4
votes

Si vous utilisez Hadoop 2 et que votre travail fonctionne localement au lieu de la cluster, assurez-vous que vous avez la configuration Mapred-Site.xml pour contenir le mapReduce.framework.name Propriété avec une valeur de fil . Vous devez également configurer un service AUX dans Yarn-Site.xml

Checkout the Cloudera Hadoop 2 Blog Migration de l'opérateur Pour plus d'informations.


0 commentaires