需要分析统计的数据:
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