mapReduce入门示例2---手机用户上行、下行、总流量数据分析统计

需要分析统计的数据:

 13726230503    00-FD-07-A4-72-B8:CMCC    120.196.100.82    i02.c.aliimg.com        24    27    2481    24681    200
 13826544101    5C-0E-8B-C7-F1-E0:CMCC    120.197.40.4            4    0    264    0    200
 13926435656    20-10-7A-28-CC-0A:CMCC    120.196.100.99            2    4    132    1512    200
 13926251106    5C-0E-8B-8B-B1-50:CMCC    120.197.40.4            4    0    240    0    200
 18211575961    94-71-AC-CD-E6-18:CMCC-EASY    120.196.100.99    iface.qiyi.com    视频网站    15    12    1527    2106    200
 84138413    5C-0E-8B-8C-E8-20:7DaysInn    120.197.40.4    122.72.52.12        20    16    4116    1432    200
 13560439658    C4-17-FE-BA-DE-D9:CMCC    120.196.100.99            18    15    1116    954    200
 15920133257    5C-0E-8B-C7-BA-20:CMCC    120.197.40.4    sug.so.360.cn    信息安全    20    20    3156    2936    200
 13719199419    68-A1-B7-03-07-B1:CMCC-EASY    120.196.100.82            4    0    240    0    200
 13660577991    5C-0E-8B-92-5C-20:CMCC-EASY    120.197.40.4    s19.cnzz.com    站点统计    24    9    6960    690    200
 15013685858    5C-0E-8B-C7-F7-90:CMCC    120.197.40.4    rank.ie.sogou.com    搜索引擎    28    27    3659    3538    200
 15989002119    E8-99-C4-4E-93-E0:CMCC-EASY    120.196.100.99    www.umeng.com    站点统计    3    3    1938    180    200
 13560439658    C4-17-FE-BA-DE-D9:CMCC    120.196.100.99            15    9    918    4938    200
 13480253104    5C-0E-8B-C7-FC-80:CMCC-EASY    120.197.40.4            3    3    180    180    200
 13602846565    5C-0E-8B-8B-B6-00:CMCC    120.197.40.4    2052.flash2-http.qq.com    综合门户    15    12    1938    2910    200
 13922314466    00-FD-07-A2-EC-BA:CMCC    120.196.100.82    img.qfc.cn        12    12    3008    3720    200
 13502468823    5C-0A-5B-6A-0B-D4:CMCC-EASY    120.196.100.99    y0.ifengimg.com    综合门户    57    102    7335    110349    200
 18320173382    84-25-DB-4F-10-1A:CMCC-EASY    120.196.100.99    input.shouji.sogou.com    搜索引擎    21    18    9531    2412    200
 13925057413    00-1F-64-E1-E6-9A:CMCC    120.196.100.55    t3.baidu.com    搜索引擎    69    63    11058    48243    200
 13760778710    00-FD-07-A4-7B-08:CMCC    120.196.100.82            2    2    120    120    200
 13560436666    00-FD-07-A4-72-B8:CMCC    120.196.100.82    i02.c.aliimg.com        24    27    2481    24681    200
 13560436666    C4-17-FE-BA-DE-D9:CMCC    120.196.100.99            18    15    1116    954    200

MapReduce程序代码如下:

package com.cn.MrTest;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * 统计每一个用户(手机号)所耗费的总上行流量、总下行流量以及总流量
 * */
public class PhoneFlowMR {
    public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
        Configuration conf=new Configuration();
        conf.set("fs.defaultFS","hdfs://hadoop2:9000");
        System.setProperty("HADOOP_USER_NAME","hadoop");

        //创建一个job对象用于管理程序运行时所需的参数
        Job job= Job.getInstance(conf,"FlowSumMR");
        //设置jar包所在路径
        job.setJarByClass(PhoneFlowMR.class);
        //设置运行的Mapper类
        job.setMapperClass(PhoneFlowMapper.class);
        //设置运行的Reducer类
        job.setReducerClass(PhoneFlowReducer.class);
        //设置输出的键值数据类型
        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(Text.class);

        Path inputPath=new Path("/phone/input/");
        Path outputPath=new Path("/phone/output");

        FileInputFormat.setInputPaths(job,inputPath);
        FileOutputFormat.setOutputPath(job,outputPath);

        FileSystem fs= FileSystem.get(conf);
        if(fs.exists(outputPath)){
            fs.delete(outputPath,true);
        }
        //提交任务
        boolean isDone=job.waitForCompletion(true);
        System.exit(isDone?0:1);
    }
    /**
     * MapTask作业类
     * 数据如下:13726230503 00-FD-07-A4-72-B8:CMCC  120.196.100.82  i02.c.aliimg.com  24        27           2481        24681       200
     *           手机号[0]    基站编号[1]             IP[2]            url[3]     发送数据包[4]  接收数据包[5]  上行流量[6] 下行流量[7]   响应码[8]
     * */
    static class PhoneFlowMapper extends Mapper<LongWritable,Text,Text,Text> {
        @Override
        protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
            String line=value.toString();
            String[] split=line.trim().split(" ");
            List list=new ArrayList();
            for(int i=0;i<split.length;i++){
                if(!"".equals(split[i])){
                    list.add(split[i]);
                }

            }
           String outKey=list.get(0).toString();
            String outValue=list.get(list.size()-3).toString()+"\t"+list.get(list.size()-2).toString();
            context.write(new Text(outKey),new Text(outValue));
        }
    }
    /**
     * ReducerTask作业类
     * */
    static class PhoneFlowReducer extends Reducer<Text,Text,Text,Text> {
        @Override
        protected void reduce(Text key, Iterable<Text> values, Context context) throws IOException, InterruptedException {
            int upFlow=0;    //上行流量
            int downFlow=0;  //下行流量
            int sumFlow=0;   //总流量
            for(Text t:values){
                String[] split=t.toString().split("\t");
                int upTempFlow=Integer.parseInt(split[0]);
                int downTempFlow=Integer.parseInt(split[1]);
                upFlow += upTempFlow;
                downFlow += downTempFlow;
            }
            sumFlow=upFlow+downFlow;
            context.write(key,new Text(upFlow+"\t"+downFlow+"\t"+sumFlow));
        }
    }
}

程序运行控制台:

D:\developTool\jdk\jdk8\bin\java "-javaagent:D:\developTool\idea2017\IntelliJ IDEA 2017.3\lib\idea_rt.jar=61314:D:\developTool\idea2017\IntelliJ IDEA 2017.3\bin" -Dfile.encoding=UTF-8 -classpath D:\developTool\jdk\jdk8\jre\lib\charsets.jar;D:\developTool\jdk\jdk8\jre\lib\deploy.jar;D:\developTool\jdk\jdk8\jre\lib\ext\access-bridge-64.jar;D:\developTool\jdk\jdk8\jre\lib\ext\cldrdata.jar;D:\developTool\jdk\jdk8\jre\lib\ext\dnsns.jar;D:\developTool\jdk\jdk8\jre\lib\ext\jaccess.jar;D:\developTool\jdk\jdk8\jre\lib\ext\jfxrt.jar;D:\developTool\jdk\jdk8\jre\lib\ext\localedata.jar;D:\developTool\jdk\jdk8\jre\lib\ext\nashorn.jar;D:\developTool\jdk\jdk8\jre\lib\ext\sunec.jar;D:\developTool\jdk\jdk8\jre\lib\ext\sunjce_provider.jar;D:\developTool\jdk\jdk8\jre\lib\ext\sunmscapi.jar;D:\developTool\jdk\jdk8\jre\lib\ext\sunpkcs11.jar;D:\developTool\jdk\jdk8\jre\lib\ext\zipfs.jar;D:\developTool\jdk\jdk8\jre\lib\javaws.jar;D:\developTool\jdk\jdk8\jre\lib\jce.jar;D:\developTool\jdk\jdk8\jre\lib\jfr.jar;D:\developTool\jdk\jdk8\jre\lib\jfxswt.jar;D:\developTool\jdk\jdk8\jre\lib\jsse.jar;D:\developTool\jdk\jdk8\jre\lib\management-agent.jar;D:\developTool\jdk\jdk8\jre\lib\plugin.jar;D:\developTool\jdk\jdk8\jre\lib\resources.jar;D:\developTool\jdk\jdk8\jre\lib\rt.jar;F:\downloads\demo-provider\hadoop_example\hdfs_Demo\target\classes;C:\Users\Administrator\.m2\repository\org\apache\hadoop\hadoop-hdfs\2.9.1\hadoop-hdfs-2.9.1.jar;C:\Users\Administrator\.m2\repository\org\apache\hadoop\hadoop-hdfs-client\2.9.1\hadoop-hdfs-client-2.9.1.jar;C:\Users\Administrator\.m2\repository\com\squareup\okhttp\okhttp\2.7.5\okhttp-2.7.5.jar;C:\Users\Administrator\.m2\repository\com\squareup\okio\okio\1.6.0\okio-1.6.0.jar;C:\Users\Administrator\.m2\repository\com\google\guava\guava\11.0.2\guava-11.0.2.jar;C:\Users\Administrator\.m2\repository\org\mortbay\jetty\jetty\6.1.26\jetty-6.1.26.jar;C:\Users\Administrator\.m2\repository\org\mortbay\jetty\jetty-util\6.1.26\jetty-util-6.1.26.jar;C:\Users\Administrator\.m2\repository\com\sun\jersey\jersey-core\1.9\jersey-core-1.9.jar;C:\Users\Administrator\.m2\repository\com\sun\jersey\jersey-server\1.9\jersey-server-1.9.jar;C:\Users\Administrator\.m2\repository\asm\asm\3.1\asm-3.1.jar;C:\Users\Administrator\.m2\repository\commons-cli\commons-cli\1.2\commons-cli-1.2.jar;C:\Users\Administrator\.m2\repository\commons-codec\commons-codec\1.11\commons-codec-1.11.jar;C:\Users\Administrator\.m2\repository\commons-io\commons-io\2.4\commons-io-2.4.jar;C:\Users\Administrator\.m2\repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;C:\Users\Administrator\.m2\repository\commons-logging\commons-logging\1.1.3\commons-logging-1.1.3.jar;C:\Users\Administrator\.m2\repository\commons-daemon\commons-daemon\1.0.13\commons-daemon-1.0.13.jar;C:\Users\Administrator\.m2\repository\log4j\log4j\1.2.17\log4j-1.2.17.jar;C:\Users\Administrator\.m2\repository\com\google\protobuf\protobuf-java\2.5.0\protobuf-java-2.5.0.jar;C:\Users\Administrator\.m2\repository\javax\servlet\servlet-api\2.5\servlet-api-2.5.jar;C:\Users\Administrator\.m2\repository\org\codehaus\jackson\jackson-core-asl\1.9.13\jackson-core-asl-1.9.13.jar;C:\Users\Administrator\.m2\repository\org\codehaus\jackson\jackson-mapper-asl\1.9.13\jackson-mapper-asl-1.9.13.jar;C:\Users\Administrator\.m2\repository\xmlenc\xmlenc\0.52\xmlenc-0.52.jar;C:\Users\Administrator\.m2\repository\io\netty\netty\3.6.2.Final\netty-3.6.2.Final.jar;C:\Users\Administrator\.m2\repository\io\netty\netty-all\4.1.36.Final\netty-all-4.1.36.Final.jar;C:\Users\Administrator\.m2\repository\xerces\xercesImpl\2.9.1\xercesImpl-2.9.1.jar;C:\Users\Administrator\.m2\repository\xml-apis\xml-apis\1.4.01\xml-apis-1.4.01.jar;C:\Users\Administrator\.m2\repository\org\apache\htrace\htrace-core4\4.1.0-incubating\htrace-core4-4.1.0-incubating.jar;C:\Users\Administrator\.m2\repository\org\fusesource\leveldbjni\leveldbjni-all\1.8\leveldbjni-all-1.8.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.9.8\jackson-databind-2.9.8.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.9.0\jackson-annotations-2.9.0.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.9.8\jackson-core-2.9.8.jar;C:\Users\Administrator\.m2\repository\org\apache\hadoop\hadoop-common\2.9.1\hadoop-common-2.9.1.jar;C:\Users\Administrator\.m2\repository\org\apache\hadoop\hadoop-annotations\2.9.1\hadoop-annotations-2.9.1.jar;C:\Users\Administrator\.m2\repository\org\apache\commons\commons-math3\3.1.1\commons-math3-3.1.1.jar;C:\Users\Administrator\.m2\repository\org\apache\httpcomponents\httpclient\4.5.8\httpclient-4.5.8.jar;C:\Users\Administrator\.m2\repository\org\apache\httpcomponents\httpcore\4.4.11\httpcore-4.4.11.jar;C:\Users\Administrator\.m2\repository\commons-net\commons-net\3.1\commons-net-3.1.jar;C:\Users\Administrator\.m2\repository\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar;C:\Users\Administrator\.m2\repository\org\mortbay\jetty\jetty-sslengine\6.1.26\jetty-sslengine-6.1.26.jar;C:\Users\Administrator\.m2\repository\javax\servlet\jsp\jsp-api\2.1\jsp-api-2.1.jar;C:\Users\Administrator\.m2\repository\com\sun\jersey\jersey-json\1.9\jersey-json-1.9.jar;C:\Users\Administrator\.m2\repository\com\sun\xml\bind\jaxb-impl\2.2.3-1\jaxb-impl-2.2.3-1.jar;C:\Users\Administrator\.m2\repository\net\java\dev\jets3t\jets3t\0.9.0\jets3t-0.9.0.jar;C:\Users\Administrator\.m2\repository\com\jamesmurty\utils\java-xmlbuilder\0.4\java-xmlbuilder-0.4.jar;C:\Users\Administrator\.m2\repository\commons-configuration\commons-configuration\1.6\commons-configuration-1.6.jar;C:\Users\Administrator\.m2\repository\commons-digester\commons-digester\1.8\commons-digester-1.8.jar;C:\Users\Administrator\.m2\repository\commons-beanutils\commons-beanutils\1.7.0\commons-beanutils-1.7.0.jar;C:\Users\Administrator\.m2\repository\commons-beanutils\commons-beanutils-core\1.8.0\commons-beanutils-core-1.8.0.jar;C:\Users\Administrator\.m2\repository\org\apache\commons\commons-lang3\3.8.1\commons-lang3-3.8.1.jar;C:\Users\Administrator\.m2\repository\org\slf4j\slf4j-api\1.7.26\slf4j-api-1.7.26.jar;C:\Users\Administrator\.m2\repository\org\slf4j\slf4j-log4j12\1.7.26\slf4j-log4j12-1.7.26.jar;C:\Users\Administrator\.m2\repository\org\apache\avro\avro\1.7.7\avro-1.7.7.jar;C:\Users\Administrator\.m2\repository\com\thoughtworks\paranamer\paranamer\2.3\paranamer-2.3.jar;C:\Users\Administrator\.m2\repository\org\xerial\snappy\snappy-java\1.0.5\snappy-java-1.0.5.jar;C:\Users\Administrator\.m2\repository\com\google\code\gson\gson\2.8.5\gson-2.8.5.jar;C:\Users\Administrator\.m2\repository\com\jcraft\jsch\0.1.54\jsch-0.1.54.jar;C:\Users\Administrator\.m2\repository\org\apache\curator\curator-client\2.7.1\curator-client-2.7.1.jar;C:\Users\Administrator\.m2\repository\org\apache\curator\curator-recipes\2.7.1\curator-recipes-2.7.1.jar;C:\Users\Administrator\.m2\repository\com\google\code\findbugs\jsr305\3.0.0\jsr305-3.0.0.jar;C:\Users\Administrator\.m2\repository\org\apache\zookeeper\zookeeper\3.4.6\zookeeper-3.4.6.jar;C:\Users\Administrator\.m2\repository\org\apache\commons\commons-compress\1.4.1\commons-compress-1.4.1.jar;C:\Users\Administrator\.m2\repository\org\tukaani\xz\1.0\xz-1.0.jar;C:\Users\Administrator\.m2\repository\org\codehaus\woodstox\stax2-api\3.1.4\stax2-api-3.1.4.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\woodstox\woodstox-core\5.0.3\woodstox-core-5.0.3.jar;C:\Users\Administrator\.m2\repository\org\apache\hadoop\hadoop-yarn-common\2.9.1\hadoop-yarn-common-2.9.1.jar;C:\Users\Administrator\.m2\repository\org\apache\hadoop\hadoop-yarn-api\2.9.1\hadoop-yarn-api-2.9.1.jar;C:\Users\Administrator\.m2\repository\javax\xml\bind\jaxb-api\2.3.1\jaxb-api-2.3.1.jar;C:\Users\Administrator\.m2\repository\javax\activation\javax.activation-api\1.2.0\javax.activation-api-1.2.0.jar;C:\Users\Administrator\.m2\repository\com\sun\jersey\jersey-client\1.9\jersey-client-1.9.jar;C:\Users\Administrator\.m2\repository\org\codehaus\jackson\jackson-jaxrs\1.9.13\jackson-jaxrs-1.9.13.jar;C:\Users\Administrator\.m2\repository\org\codehaus\jackson\jackson-xc\1.9.13\jackson-xc-1.9.13.jar;C:\Users\Administrator\.m2\repository\com\google\inject\extensions\guice-servlet\3.0\guice-servlet-3.0.jar;C:\Users\Administrator\.m2\repository\com\google\inject\guice\3.0\guice-3.0.jar;C:\Users\Administrator\.m2\repository\javax\inject\javax.inject\1\javax.inject-1.jar;C:\Users\Administrator\.m2\repository\aopalliance\aopalliance\1.0\aopalliance-1.0.jar;C:\Users\Administrator\.m2\repository\com\sun\jersey\contribs\jersey-guice\1.9\jersey-guice-1.9.jar;C:\Users\Administrator\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-common\2.9.1\hadoop-mapreduce-client-common-2.9.1.jar;C:\Users\Administrator\.m2\repository\org\apache\hadoop\hadoop-yarn-client\2.9.1\hadoop-yarn-client-2.9.1.jar;C:\Users\Administrator\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-core\2.9.1\hadoop-mapreduce-client-core-2.9.1.jar;C:\Users\Administrator\.m2\repository\org\apache\hadoop\hadoop-auth\2.9.1\hadoop-auth-2.9.1.jar;C:\Users\Administrator\.m2\repository\com\nimbusds\nimbus-jose-jwt\4.41.1\nimbus-jose-jwt-4.41.1.jar;C:\Users\Administrator\.m2\repository\com\github\stephenc\jcip\jcip-annotations\1.0-1\jcip-annotations-1.0-1.jar;C:\Users\Administrator\.m2\repository\net\minidev\json-smart\2.3\json-smart-2.3.jar;C:\Users\Administrator\.m2\repository\net\minidev\accessors-smart\1.2\accessors-smart-1.2.jar;C:\Users\Administrator\.m2\repository\org\ow2\asm\asm\5.0.4\asm-5.0.4.jar;C:\Users\Administrator\.m2\repository\org\apache\directory\server\apacheds-kerberos-codec\2.0.0-M15\apacheds-kerberos-codec-2.0.0-M15.jar;C:\Users\Administrator\.m2\repository\org\apache\directory\server\apacheds-i18n\2.0.0-M15\apacheds-i18n-2.0.0-M15.jar;C:\Users\Administrator\.m2\repository\org\apache\directory\api\api-asn1-api\1.0.0-M20\api-asn1-api-1.0.0-M20.jar;C:\Users\Administrator\.m2\repository\org\apache\directory\api\api-util\1.0.0-M20\api-util-1.0.0-M20.jar;C:\Users\Administrator\.m2\repository\org\apache\curator\curator-framework\2.7.1\curator-framework-2.7.1.jar;C:\Users\Administrator\.m2\repository\org\apache\hbase\hbase-server\2.0.5\hbase-server-2.0.5.jar;C:\Users\Administrator\.m2\repository\org\apache\hbase\thirdparty\hbase-shaded-protobuf\2.1.0\hbase-shaded-protobuf-2.1.0.jar;C:\Users\Administrator\.m2\repository\org\apache\hbase\thirdparty\hbase-shaded-netty\2.1.0\hbase-shaded-netty-2.1.0.jar;C:\Users\Administrator\.m2\repository\org\apache\hbase\thirdparty\hbase-shaded-miscellaneous\2.1.0\hbase-shaded-miscellaneous-2.1.0.jar;C:\Users\Administrator\.m2\repository\org\apache\hbase\hbase-common\2.0.5\hbase-common-2.0.5.jar;C:\Users\Administrator\.m2\repository\com\github\stephenc\findbugs\findbugs-annotations\1.3.9-1\findbugs-annotations-1.3.9-1.jar;C:\Users\Administrator\.m2\repository\org\apache\hbase\hbase-http\2.0.5\hbase-http-2.0.5.jar;C:\Users\Administrator\.m2\repository\org\eclipse\jetty\jetty-util\9.4.18.v20190429\jetty-util-9.4.18.v20190429.jar;C:\Users\Administrator\.m2\repository\org\eclipse\jetty\jetty-util-ajax\9.4.18.v20190429\jetty-util-ajax-9.4.18.v20190429.jar;C:\Users\Administrator\.m2\repository\org\eclipse\jetty\jetty-http\9.4.18.v20190429\jetty-http-9.4.18.v20190429.jar;C:\Users\Administrator\.m2\repository\org\eclipse\jetty\jetty-security\9.4.18.v20190429\jetty-security-9.4.18.v20190429.jar;C:\Users\Administrator\.m2\repository\org\glassfish\jersey\core\jersey-server\2.27\jersey-server-2.27.jar;C:\Users\Administrator\.m2\repository\org\glassfish\jersey\core\jersey-common\2.27\jersey-common-2.27.jar;C:\Users\Administrator\.m2\repository\org\glassfish\hk2\osgi-resource-locator\1.0.1\osgi-resource-locator-1.0.1.jar;C:\Users\Administrator\.m2\repository\org\glassfish\jersey\core\jersey-client\2.27\jersey-client-2.27.jar;C:\Users\Administrator\.m2\repository\org\glassfish\jersey\media\jersey-media-jaxb\2.27\jersey-media-jaxb-2.27.jar;C:\Users\Administrator\.m2\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;C:\Users\Administrator\.m2\repository\org\glassfish\hk2\external\javax.inject\2.5.0-b42\javax.inject-2.5.0-b42.jar;C:\Users\Administrator\.m2\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;C:\Users\Administrator\.m2\repository\org\glassfish\jersey\containers\jersey-container-servlet-core\2.27\jersey-container-servlet-core-2.27.jar;C:\Users\Administrator\.m2\repository\org\apache\hbase\hbase-protocol\2.0.5\hbase-protocol-2.0.5.jar;C:\Users\Administrator\.m2\repository\junit\junit\4.12\junit-4.12.jar;C:\Users\Administrator\.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\Administrator\.m2\repository\org\apache\hbase\hbase-protocol-shaded\2.0.5\hbase-protocol-shaded-2.0.5.jar;C:\Users\Administrator\.m2\repository\org\apache\hbase\hbase-procedure\2.0.5\hbase-procedure-2.0.5.jar;C:\Users\Administrator\.m2\repository\org\apache\hbase\hbase-common\2.0.5\hbase-common-2.0.5-tests.jar;C:\Users\Administrator\.m2\repository\org\apache\hbase\hbase-zookeeper\2.0.5\hbase-zookeeper-2.0.5.jar;C:\Users\Administrator\.m2\repository\org\apache\hbase\hbase-replication\2.0.5\hbase-replication-2.0.5.jar;C:\Users\Administrator\.m2\repository\org\apache\hbase\hbase-metrics-api\2.0.5\hbase-metrics-api-2.0.5.jar;C:\Users\Administrator\.m2\repository\org\apache\hbase\hbase-metrics\2.0.5\hbase-metrics-2.0.5.jar;C:\Users\Administrator\.m2\repository\org\apache\hbase\hbase-hadoop-compat\2.0.5\hbase-hadoop-compat-2.0.5.jar;C:\Users\Administrator\.m2\repository\org\apache\hbase\hbase-hadoop2-compat\2.0.5\hbase-hadoop2-compat-2.0.5.jar;C:\Users\Administrator\.m2\repository\org\eclipse\jetty\jetty-server\9.4.18.v20190429\jetty-server-9.4.18.v20190429.jar;C:\Users\Administrator\.m2\repository\org\eclipse\jetty\jetty-io\9.4.18.v20190429\jetty-io-9.4.18.v20190429.jar;C:\Users\Administrator\.m2\repository\org\eclipse\jetty\jetty-servlet\9.4.18.v20190429\jetty-servlet-9.4.18.v20190429.jar;C:\Users\Administrator\.m2\repository\org\eclipse\jetty\jetty-webapp\9.4.18.v20190429\jetty-webapp-9.4.18.v20190429.jar;C:\Users\Administrator\.m2\repository\org\eclipse\jetty\jetty-xml\9.4.18.v20190429\jetty-xml-9.4.18.v20190429.jar;C:\Users\Administrator\.m2\repository\org\glassfish\web\javax.servlet.jsp\2.3.2\javax.servlet.jsp-2.3.2.jar;C:\Users\Administrator\.m2\repository\org\glassfish\javax.el\3.0.0\javax.el-3.0.0.jar;C:\Users\Administrator\.m2\repository\javax\servlet\jsp\javax.servlet.jsp-api\2.3.1\javax.servlet.jsp-api-2.3.1.jar;C:\Users\Administrator\.m2\repository\org\codehaus\jettison\jettison\1.3.8\jettison-1.3.8.jar;C:\Users\Administrator\.m2\repository\io\dropwizard\metrics\metrics-core\4.0.5\metrics-core-4.0.5.jar;C:\Users\Administrator\.m2\repository\org\jamon\jamon-runtime\2.4.1\jamon-runtime-2.4.1.jar;C:\Users\Administrator\.m2\repository\javax\servlet\javax.servlet-api\4.0.1\javax.servlet-api-4.0.1.jar;C:\Users\Administrator\.m2\repository\javax\ws\rs\javax.ws.rs-api\2.0.1\javax.ws.rs-api-2.0.1.jar;C:\Users\Administrator\.m2\repository\org\apache\htrace\htrace-core\3.2.0-incubating\htrace-core-3.2.0-incubating.jar;C:\Users\Administrator\.m2\repository\com\lmax\disruptor\3.3.6\disruptor-3.3.6.jar;C:\Users\Administrator\.m2\repository\org\apache\commons\commons-crypto\1.0.0\commons-crypto-1.0.0.jar;C:\Users\Administrator\.m2\repository\org\apache\hadoop\hadoop-distcp\2.7.7\hadoop-distcp-2.7.7.jar;C:\Users\Administrator\.m2\repository\org\apache\hadoop\hadoop-client\2.7.7\hadoop-client-2.7.7.jar;C:\Users\Administrator\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-app\2.7.7\hadoop-mapreduce-client-app-2.7.7.jar;C:\Users\Administrator\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-shuffle\2.7.7\hadoop-mapreduce-client-shuffle-2.7.7.jar;C:\Users\Administrator\.m2\repository\org\apache\hadoop\hadoop-yarn-server-common\2.7.7\hadoop-yarn-server-common-2.7.7.jar;C:\Users\Administrator\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-jobclient\2.7.7\hadoop-mapreduce-client-jobclient-2.7.7.jar;C:\Users\Administrator\.m2\repository\org\apache\yetus\audience-annotations\0.5.0\audience-annotations-0.5.0.jar;C:\Users\Administrator\.m2\repository\org\apache\hbase\hbase-client\2.0.5\hbase-client-2.0.5.jar;C:\Users\Administrator\.m2\repository\org\jruby\jcodings\jcodings\1.0.18\jcodings-1.0.18.jar;C:\Users\Administrator\.m2\repository\org\jruby\joni\joni\2.1.11\joni-2.1.11.jar;D:\developTool\jdk\jdk8\lib\tools.jar com.cn.MrTest.PhoneFlowMR
19/07/24 16:05:03 INFO Configuration.deprecation: session.id is deprecated. Instead, use dfs.metrics.session-id
19/07/24 16:05:03 INFO jvm.JvmMetrics: Initializing JVM Metrics with processName=JobTracker, sessionId=
19/07/24 16:05:07 WARN mapreduce.JobResourceUploader: Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with ToolRunner to remedy this.
19/07/24 16:05:07 WARN mapreduce.JobResourceUploader: No job jar file set.  User classes may not be found. See Job or Job#setJar(String).
19/07/24 16:05:07 INFO input.FileInputFormat: Total input files to process : 1
19/07/24 16:05:07 INFO mapreduce.JobSubmitter: number of splits:1
19/07/24 16:05:08 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_local252986531_0001
19/07/24 16:05:09 INFO mapreduce.Job: The url to track the job: http://localhost:8080/
19/07/24 16:05:09 INFO mapreduce.Job: Running job: job_local252986531_0001
19/07/24 16:05:09 INFO mapred.LocalJobRunner: OutputCommitter set in config null
19/07/24 16:05:09 INFO output.FileOutputCommitter: File Output Committer Algorithm version is 1
19/07/24 16:05:09 INFO output.FileOutputCommitter: FileOutputCommitter skip cleanup _temporary folders under output directory:false, ignore cleanup failures: false
19/07/24 16:05:09 INFO mapred.LocalJobRunner: OutputCommitter is org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter
19/07/24 16:05:09 INFO mapred.LocalJobRunner: Waiting for map tasks
19/07/24 16:05:09 INFO mapred.LocalJobRunner: Starting task: attempt_local252986531_0001_m_000000_0
19/07/24 16:05:09 INFO output.FileOutputCommitter: File Output Committer Algorithm version is 1
19/07/24 16:05:09 INFO output.FileOutputCommitter: FileOutputCommitter skip cleanup _temporary folders under output directory:false, ignore cleanup failures: false
19/07/24 16:05:09 INFO util.ProcfsBasedProcessTree: ProcfsBasedProcessTree currently is supported only on Linux.
19/07/24 16:05:09 INFO mapred.Task:  Using ResourceCalculatorProcessTree : org.apache.hadoop.yarn.util.WindowsBasedProcessTree@23aaa184
19/07/24 16:05:09 INFO mapred.MapTask: Processing split: hdfs://hadoop2:9000/phone/input/phone.txt:0+2476
19/07/24 16:05:10 INFO mapred.MapTask: (EQUATOR) 0 kvi 26214396(104857584)
19/07/24 16:05:10 INFO mapred.MapTask: mapreduce.task.io.sort.mb: 100
19/07/24 16:05:10 INFO mapred.MapTask: soft limit at 83886080
19/07/24 16:05:10 INFO mapred.MapTask: bufstart = 0; bufvoid = 104857600
19/07/24 16:05:10 INFO mapred.MapTask: kvstart = 26214396; length = 6553600
19/07/24 16:05:10 INFO mapred.MapTask: Map output collector class = org.apache.hadoop.mapred.MapTask$MapOutputBuffer
19/07/24 16:05:10 INFO mapreduce.Job: Job job_local252986531_0001 running in uber mode : false
19/07/24 16:05:10 INFO mapreduce.Job:  map 0% reduce 0%
19/07/24 16:05:12 INFO mapred.LocalJobRunner: 
19/07/24 16:05:12 INFO mapred.MapTask: Starting flush of map output
19/07/24 16:05:12 INFO mapred.MapTask: Spilling map output
19/07/24 16:05:12 INFO mapred.MapTask: bufstart = 0; bufend = 465; bufvoid = 104857600
19/07/24 16:05:12 INFO mapred.MapTask: kvstart = 26214396(104857584); kvend = 26214312(104857248); length = 85/6553600
19/07/24 16:05:18 INFO mapred.MapTask: Finished spill 0
19/07/24 16:05:18 INFO mapred.Task: Task:attempt_local252986531_0001_m_000000_0 is done. And is in the process of committing
19/07/24 16:05:18 INFO mapred.LocalJobRunner: map
19/07/24 16:05:18 INFO mapred.Task: Task 'attempt_local252986531_0001_m_000000_0' done.
19/07/24 16:05:18 INFO mapred.LocalJobRunner: Finishing task: attempt_local252986531_0001_m_000000_0
19/07/24 16:05:18 INFO mapred.LocalJobRunner: map task executor complete.
19/07/24 16:05:18 INFO mapred.LocalJobRunner: Waiting for reduce tasks
19/07/24 16:05:18 INFO mapred.LocalJobRunner: Starting task: attempt_local252986531_0001_r_000000_0
19/07/24 16:05:18 INFO output.FileOutputCommitter: File Output Committer Algorithm version is 1
19/07/24 16:05:18 INFO output.FileOutputCommitter: FileOutputCommitter skip cleanup _temporary folders under output directory:false, ignore cleanup failures: false
19/07/24 16:05:18 INFO util.ProcfsBasedProcessTree: ProcfsBasedProcessTree currently is supported only on Linux.
19/07/24 16:05:18 INFO mapred.Task:  Using ResourceCalculatorProcessTree : org.apache.hadoop.yarn.util.WindowsBasedProcessTree@3dbf4dad
19/07/24 16:05:18 INFO mapred.ReduceTask: Using ShuffleConsumerPlugin: org.apache.hadoop.mapreduce.task.reduce.Shuffle@6fc6fa1c
19/07/24 16:05:18 INFO reduce.MergeManagerImpl: MergerManager: memoryLimit=1311663744, maxSingleShuffleLimit=327915936, mergeThreshold=865698112, ioSortFactor=10, memToMemMergeOutputsThreshold=10
19/07/24 16:05:18 INFO reduce.EventFetcher: attempt_local252986531_0001_r_000000_0 Thread started: EventFetcher for fetching Map Completion Events
19/07/24 16:05:18 INFO reduce.LocalFetcher: localfetcher#1 about to shuffle output of map attempt_local252986531_0001_m_000000_0 decomp: 511 len: 515 to MEMORY
19/07/24 16:05:18 INFO reduce.InMemoryMapOutput: Read 511 bytes from map-output for attempt_local252986531_0001_m_000000_0
19/07/24 16:05:18 INFO reduce.MergeManagerImpl: closeInMemoryFile -> map-output of size: 511, inMemoryMapOutputs.size() -> 1, commitMemory -> 0, usedMemory ->511
19/07/24 16:05:18 INFO reduce.EventFetcher: EventFetcher is interrupted.. Returning
19/07/24 16:05:18 INFO mapred.LocalJobRunner: 1 / 1 copied.
19/07/24 16:05:18 INFO reduce.MergeManagerImpl: finalMerge called with 1 in-memory map-outputs and 0 on-disk map-outputs
19/07/24 16:05:19 INFO mapred.Merger: Merging 1 sorted segments
19/07/24 16:05:19 INFO mapred.Merger: Down to the last merge-pass, with 1 segments left of total size: 497 bytes
19/07/24 16:05:19 INFO reduce.MergeManagerImpl: Merged 1 segments, 511 bytes to disk to satisfy reduce memory limit
19/07/24 16:05:19 INFO reduce.MergeManagerImpl: Merging 1 files, 515 bytes from disk
19/07/24 16:05:19 INFO reduce.MergeManagerImpl: Merging 0 segments, 0 bytes from memory into reduce
19/07/24 16:05:19 INFO mapred.Merger: Merging 1 sorted segments
19/07/24 16:05:19 INFO mapred.Merger: Down to the last merge-pass, with 1 segments left of total size: 497 bytes
19/07/24 16:05:19 INFO mapred.LocalJobRunner: 1 / 1 copied.
19/07/24 16:05:19 INFO Configuration.deprecation: mapred.skip.on is deprecated. Instead, use mapreduce.job.skiprecords
19/07/24 16:05:19 INFO mapreduce.Job:  map 100% reduce 0%
19/07/24 16:05:19 INFO mapred.Task: Task:attempt_local252986531_0001_r_000000_0 is done. And is in the process of committing
19/07/24 16:05:19 INFO mapred.LocalJobRunner: 1 / 1 copied.
19/07/24 16:05:19 INFO mapred.Task: Task attempt_local252986531_0001_r_000000_0 is allowed to commit now
19/07/24 16:05:19 INFO output.FileOutputCommitter: Saved output of task 'attempt_local252986531_0001_r_000000_0' to hdfs://hadoop2:9000/phone/output/_temporary/0/task_local252986531_0001_r_000000
19/07/24 16:05:19 INFO mapred.LocalJobRunner: reduce > reduce
19/07/24 16:05:19 INFO mapred.Task: Task 'attempt_local252986531_0001_r_000000_0' done.
19/07/24 16:05:19 INFO mapred.LocalJobRunner: Finishing task: attempt_local252986531_0001_r_000000_0
19/07/24 16:05:19 INFO mapred.LocalJobRunner: reduce task executor complete.
19/07/24 16:05:20 INFO mapreduce.Job:  map 100% reduce 100%
19/07/24 16:05:20 INFO mapreduce.Job: Job job_local252986531_0001 completed successfully
19/07/24 16:05:20 INFO mapreduce.Job: Counters: 35
	File System Counters
		FILE: Number of bytes read=1414
		FILE: Number of bytes written=961433
		FILE: Number of read operations=0
		FILE: Number of large read operations=0
		FILE: Number of write operations=0
		HDFS: Number of bytes read=4952
		HDFS: Number of bytes written=525
		HDFS: Number of read operations=15
		HDFS: Number of large read operations=0
		HDFS: Number of write operations=6
	Map-Reduce Framework
		Map input records=22
		Map output records=22
		Map output bytes=465
		Map output materialized bytes=515
		Input split bytes=106
		Combine input records=0
		Combine output records=0
		Reduce input groups=20
		Reduce shuffle bytes=515
		Reduce input records=22
		Reduce output records=20
		Spilled Records=44
		Shuffled Maps =1
		Failed Shuffles=0
		Merged Map outputs=1
		GC time elapsed (ms)=11
		Total committed heap usage (bytes)=446693376
	Shuffle Errors
		BAD_ID=0
		CONNECTION=0
		IO_ERROR=0
		WRONG_LENGTH=0
		WRONG_MAP=0
		WRONG_REDUCE=0
	File Input Format Counters 
		Bytes Read=2476
	File Output Format Counters 
		Bytes Written=525

Process finished with exit code 0

HDFS web端查看结果如下:

 

统计分析结果:

13480253104	180	180	360
13502468823	7335	110349	117684
13560436666	3597	25635	29232
13560439658	2034	5892	7926
13602846565	1938	2910	4848
13660577991	6960	690	7650
13719199419	240	0	240
13726230503	2481	24681	27162
13760778710	120	120	240
13826544101	264	0	264
13922314466	3008	3720	6728
13925057413	11058	48243	59301
13926251106	240	0	240
13926435656	132	1512	1644
15013685858	3659	3538	7197
15920133257	3156	2936	6092
15989002119	1938	180	2118
18211575961	1527	2106	3633
18320173382	9531	2412	11943
84138413	4116	1432	5548

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值