zoukankan      html  css  js  c++  java
  • mapreduce中reduce没有执行

     hadoop执行mapreduce过程reduce不执行原因

    1.如果你的map过程中没有context.write()是不执行reduce过程的;
    2.如果你的map过程中context.write()的map后的的部分数据出现问题,
    不符合reduce接受的数据也会不执行reduce
    比如说你的日志文件中有一个空行是不符合reduce的接受数据reduce不执行;

     原:(会读到空行,不符合reduce的接受数据,reduce不执行)

    public static class Map extends Mapper<Object,Text,Text,IntWritable>{    //将输入输出作为string类型,对应Text类型
                private static Text newKey=new Text();    //每一行作为一个数据  
                public void map(Object key, Text value, Context context) throws IOException, InterruptedException{   
                    String line=value.toString();//转为字符串类型
                    System.out.println(line);
                        String arr[]=line.split(" ");//splite是按照输入的值拆分成数组
                        newKey.set(arr[0]);
                        int click=Integer.parseInt(arr[1]);
                        context.write(newKey,new IntWritable(click)); 
                        System.out.println(newKey+"  "+new IntWritable(click));                
                 } 
             }   

     加判断语句:

    public static class Map extends Mapper<Object,Text,Text,IntWritable>{    //将输入输出作为string类型,对应Text类型
                private static Text newKey=new Text();    //每一行作为一个数据  
                public void map(Object key, Text value, Context context) throws IOException, InterruptedException{   
                    String line=value.toString();//转为字符串类型
                    System.out.println(line);
                    if(!("".equals(line)))//增加控制语句,使得line为”“时能够停止。否则不符合reduce接受的数据不会执行reduce
                    {
                        String arr[]=line.split(" ");//splite是按照输入的值拆分成数组
                        newKey.set(arr[0]);
                        int click=Integer.parseInt(arr[1]);
                        context.write(newKey,new IntWritable(click)); 
                        System.out.println(newKey+"  "+new IntWritable(click));
                    }
                 } 
             }   
  • 相关阅读:
    猜数字游戏,猜三次都不对,则结束游戏,猜一次就成功,结束游戏
    用return关键字实现1——100累加求和,返回总和并接收输出
    用return关键字实现求和操作
    return关键字的作用和接受实验
    数组各元素随机赋值、求和、求平均值、求最大值的各类测试(一维数组)
    日期下拉选择
    22--
    css 17课--
    css盒模型
    css学习
  • 原文地址:https://www.cnblogs.com/sengzhao666/p/11808268.html
Copyright © 2011-2022 走看看