2015-10-13 1 views
0

Je cours la carte réduire le travail. Quelle que soit la taille du fichier (70 Mo, 200 Mo, 2,5 Go), un seul mappeur est exécuté. La taille du bloc est de 128 Mo.hadoop mapreduce un seul mappeur est exécuté

Quelqu'un pourrait-il aider à trouver ce qui pourrait être la raison ??

Remarque

  1. fichier de données ne sont pas zip/gzip, il est * .dat
  2. Ce n'est pas l'environnement de production. Toute possibilité que l'utilisateur est un utilisateur à faible priorité ?? Réf # 11 https://cloudcelebrity.wordpress.com/2013/08/14/12-key-steps-to-keep-your-hadoop-cluster-running-strong-and-performing-optimum/

.

Mon code pour soumettre le travail est comme ci-dessous:

String configPath = arg[0]; 
    String feedString = FileUtils.readFileToString(new File(configPath), StandardCharsets.UTF_8.name()); 
    getConf().set(Constants.FEED_CONFIG_STRING, feedString); 
    getConf().set("mapred.reduce.tasks.speculative.execution", "false"); 

    Job job = new Job(conf); 
    Feed feed = XMLFeedConfig.getFeed(feedString); 
    job.setJarByClass(DataValidationJob.class); 
    job.setJobName("Job " + feed.getName()); 

    ValidatorInputFormat.setInputPaths(job, new Path(feed.getSrc_location())); 
    FileOutputFormat.setOutputPath(job, new Path(feed.getDest_location())); 

    job.setMapOutputKeyClass(Text.class); 
    job.setMapOutputValueClass(Text.class); 
    job.setOutputKeyClass(Text.class); 
    job.setOutputValueClass(Text.class); 

    job.setMapperClass(ValidatorMapper.class); 
    job.setReducerClass(ValidatorReducer.class); 
    LazyOutputFormat.setOutputFormatClass(job, TextOutputFormat.class); 
    job.setNumReduceTasks(1); 

    job.setInputFormatClass(ValidatorInputFormat.class); 
    // job.setOutputFormatClass(TextOutputFormat.class); 

    return job.waitForCompletion(true) ? 0 : 1; 
+0

pouvez-vous publier les journaux que vous obtenez – madhu

+0

Qu'est-ce que ValidatorInputFormat? –

+0

ValidatorInputFormat est une implémentation Simple RecordReader – Betta

Répondre

1

Mon problème a été résolu. En fait, nous avions mis en place FileInputFormat où nous avions dans la méthode isSplittable et substituée faisaient l'entrée non sécable comme indiqué ci-dessous:

@Override 
protected boolean isSplitable(JobContext context, Path filename) { 
    return false; 
} 

par défaut méthode isSplittable est mis en œuvre pour return true;

+0

Bon à savoir –