第二个映射器没有被调用 - MultipleInputs

时间:2015-05-16 05:03:50

标签: hadoop mapreduce

第一个映射器(Reducemapper2)在“map 50%reduce 0%”完成后,我的工作就会卡住。我试图调试很多并用谷歌搜索它,但我无法弄清楚原因。下面是驱动程序类。

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.MultipleInputs;
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;


public class Reducedriver {
    public static void main(String args[]) throws Exception
    {
        if(args.length!=3)
            {
            System.err.println("Usage: Worddrivernewapi <input path1> <inputpath2> <output path>");
            System.exit(-1);
            }
        Configuration conf=new Configuration();
        Job job=new Job(conf,"Reducesideexample");
        job.setJarByClass(Reducedriver.class);
        job.setJobName("Reducedriver");
        Path path1=new Path(args[0]);
        Path path2=new Path(args[1]);       MultipleInputs.addInputPath(job,path1,TextInputFormat.class,Reducemapper1.class);
MultipleInputs.addInputPath(job,path2,TextInputFormat.class,Reducemapper2.class);
        FileOutputFormat.setOutputPath(job,new Path(args[2]));
        //job.setMapperClass(Reducemapper1.class);
        job.setPartitionerClass(Reducepartitioner.class);
        //job.setSortComparatorClass(Reducesortcomparator.class);
        job.setGroupingComparatorClass(Reducegroupcomparator.class);
        job.setReducerClass(Reducereducer.class);
        //job.setNumReduceTasks(0);
        job.setMapOutputKeyClass(ReduceWritable.class);
        job.setMapOutputValueClass(Text.class);
        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(Text.class);
         job.setOutputFormatClass(TextOutputFormat.class);
        System.exit(job.waitForCompletion(true) ? 0 : 1);
    }
}

有人可以帮我解决这个问题吗?

这是一种伪分布式模式,具有2个映射器和减速器容量。我在2节点容量中有多次成功运行。

记录单个映射器(Jobtracker日志):

2015-05-16 11:10:56,630 INFO org.apache.hadoop.util.NativeCodeLoader: Loaded the native-hadoop library
2015-05-16 11:10:57,126 WARN org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Source name ugi already exists!
2015-05-16 11:10:57,288 INFO org.apache.hadoop.util.ProcessTree: setsid exited with exit code 0
2015-05-16 11:10:57,309 INFO org.apache.hadoop.mapred.Task:  Using ResourceCalculatorPlugin : org.apache.hadoop.util.LinuxResourceCalculatorPlugin@42f93a98
2015-05-16 11:10:57,484 INFO org.apache.hadoop.mapred.MapTask: Processing split: hdfs://localhost:9000/user/hduser/test/mapmainfile.dat:0+40
2015-05-16 11:10:57,512 INFO org.apache.hadoop.mapred.MapTask: io.sort.mb = 100
2015-05-16 11:10:57,591 INFO org.apache.hadoop.mapred.MapTask: data buffer = 79691776/99614720
2015-05-16 11:10:57,592 INFO org.apache.hadoop.mapred.MapTask: record buffer = 262144/327680
2015-05-16 11:10:57,607 WARN org.apache.hadoop.io.compress.snappy.LoadSnappy: Snappy native library not loaded
2015-05-16 11:10:57,666 INFO org.apache.hadoop.mapred.MapTask: Starting flush of map output
2015-05-16 11:10:57,669 INFO org.apache.hadoop.mapred.MapTask: Starting flush of map output

从终端:

15/05/16 11:10:50 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.
15/05/16 11:10:50 INFO input.FileInputFormat: Total input paths to process : 1
15/05/16 11:10:50 INFO util.NativeCodeLoader: Loaded the native-hadoop library
15/05/16 11:10:50 WARN snappy.LoadSnappy: Snappy native library not loaded
15/05/16 11:10:50 INFO input.FileInputFormat: Total input paths to process : 1
15/05/16 11:10:51 INFO mapred.JobClient: Running job: job_201505161109_0001
15/05/16 11:10:52 INFO mapred.JobClient:  map 0% reduce 0%
15/05/16 11:11:04 INFO mapred.JobClient:  map 100% reduce 0%.

当我尝试通过localhost调试时,我可以看到第一个映射器完成,地图进度停止在50%。

Localjobrunner日志:

15/05/16 11:36:08 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
15/05/16 11:36:08 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.
15/05/16 11:36:08 WARN mapred.JobClient: No job jar file set.  User classes may not be found. See JobConf(Class) or JobConf#setJar(String).
15/05/16 11:36:08 INFO input.FileInputFormat: Total input paths to process : 1
15/05/16 11:36:08 WARN snappy.LoadSnappy: Snappy native library not loaded
15/05/16 11:36:08 INFO input.FileInputFormat: Total input paths to process : 1
15/05/16 11:36:08 INFO mapred.JobClient: Running job: job_local815502428_0001
15/05/16 11:36:09 INFO mapred.LocalJobRunner: Waiting for map tasks
15/05/16 11:36:09 INFO mapred.LocalJobRunner: Starting task: attempt_local815502428_0001_m_000000_0
15/05/16 11:36:09 INFO util.ProcessTree: setsid exited with exit code 0
15/05/16 11:36:09 INFO mapred.Task:  Using ResourceCalculatorPlugin : org.apache.hadoop.util.LinuxResourceCalculatorPlugin@11507b87
15/05/16 11:36:09 INFO mapred.MapTask: Processing split: file:/home/hduser/hadoop/myexamples/mainmapdatafile.dat:0+137
15/05/16 11:36:09 INFO mapred.MapTask: io.sort.mb = 100
15/05/16 11:36:09 INFO mapred.MapTask: data buffer = 79691776/99614720
15/05/16 11:36:09 INFO mapred.MapTask: record buffer = 262144/327680
15/05/16 11:36:09 INFO mapred.JobClient:  map 0% reduce 0%
15/05/16 11:36:18 INFO mapred.LocalJobRunner: 
15/05/16 11:36:18 INFO mapred.JobClient:  map 6% reduce 0%
15/05/16 11:36:27 INFO mapred.LocalJobRunner: 
15/05/16 11:36:28 INFO mapred.JobClient:  map 12% reduce 0%
15/05/16 11:36:36 INFO mapred.LocalJobRunner: 
15/05/16 11:36:37 INFO mapred.JobClient:  map 18% reduce 0%
15/05/16 11:36:45 INFO mapred.LocalJobRunner: 
15/05/16 11:36:46 INFO mapred.JobClient:  map 25% reduce 0%
15/05/16 11:36:51 INFO mapred.LocalJobRunner: 
15/05/16 11:36:52 INFO mapred.JobClient:  map 31% reduce 0%
15/05/16 11:36:57 INFO mapred.LocalJobRunner: 
15/05/16 11:36:58 INFO mapred.JobClient:  map 37% reduce 0%
15/05/16 11:37:03 INFO mapred.LocalJobRunner: 
15/05/16 11:37:04 INFO mapred.JobClient:  map 43% reduce 0%
15/05/16 11:37:09 INFO mapred.LocalJobRunner: 
15/05/16 11:37:10 INFO mapred.JobClient:  map 50% reduce 0%
15/05/16 11:37:12 INFO mapred.MapTask: Starting flush of map output
15/05/16 11:37:12 INFO mapred.MapTask: Starting flush of map output
15/05/16 11:37:18 INFO mapred.LocalJobRunner: 

0 个答案:

没有答案