028_MapReduce中的计数器Counter的使用

时间:2022-06-27 23:04:19

一、分析运行wordcount程序屏幕上打印信息

##运行wordcount单词频率统计程序,基于输出输出路径。

[hadoop@hadoop-master hadoop-1.2.1]$ hadoop jar hadoop-examples-1.2.1.jar wordcount /wc/mininput /wc/minoutput

##告知输入路径下有几个文件需要处理

16/03/14 05:08:59 INFO input.FileInputFormat: Total input paths to process : 2

##告知本地的snappy压缩算法的库是可用的,默认情况下,Linux是没有相应的库的

16/03/14 05:08:59 INFO util.NativeCodeLoader: Loaded the native-hadoop library

##加载本地的Hadoop库文件,默认情况下,在hadoop1.x中存放在$HADOOP_HOME/c++/Linux-amd64-64/lib(针对64bitLinux操作系统)

16/03/14 05:08:59 WARN snappy.LoadSnappy: Snappy native library not loaded

##运行Job的相关进度信息

###加载本地的snappy压缩算法的库,默认情况下,Linux是没有相应的库的,当没有配置时不显示

###运行Job的ID

16/03/14 05:08:59 INFO mapred.JobClient: Running job: job_201603140438_0001

###Job运行时,Map task 和 Reduce task的运行进度

16/03/14 05:09:00 INFO mapred.JobClient:  map 0% reduce 0%

16/03/14 05:09:12 INFO mapred.JobClient:  map 100% reduce 0%

16/03/14 05:09:21 INFO mapred.JobClient:  map 100% reduce 33%

16/03/14 05:09:23 INFO mapred.JobClient:  map 100% reduce 100%

###Job运行完成

16/03/14 05:09:24 INFO mapred.JobClient: Job complete: job_201603140438_0001

##显示整个Job运行过程中,各类计算器Counter的值

##总共有29中计数器Counter

16/03/14 05:09:24 INFO mapred.JobClient: Counters: 29

16/03/14 05:09:24 INFO mapred.JobClient:   Map-Reduce Framework           ##计数器个数:16

16/03/14 05:09:24 INFO mapred.JobClient:     Spilled Records=66

16/03/14 05:09:24 INFO mapred.JobClient:     Map output materialized bytes=440

16/03/14 05:09:24 INFO mapred.JobClient:     Reduce input records=33

16/03/14 05:09:24 INFO mapred.JobClient:     Virtual memory (bytes) snapshot=5798617088

16/03/14 05:09:24 INFO mapred.JobClient:     Map input records=18

16/03/14 05:09:24 INFO mapred.JobClient:     SPLIT_RAW_BYTES=244

16/03/14 05:09:24 INFO mapred.JobClient:     Map output bytes=395

16/03/14 05:09:24 INFO mapred.JobClient:     Reduce shuffle bytes=440

16/03/14 05:09:24 INFO mapred.JobClient:     Physical memory (bytes) snapshot=411492352

16/03/14 05:09:24 INFO mapred.JobClient:     Reduce input groups=33

16/03/14 05:09:24 INFO mapred.JobClient:     Combine output records=33

16/03/14 05:09:24 INFO mapred.JobClient:     Reduce output records=33

16/03/14 05:09:24 INFO mapred.JobClient:     Map output records=37

16/03/14 05:09:24 INFO mapred.JobClient:     Combine input records=37

16/03/14 05:09:24 INFO mapred.JobClient:     CPU time spent (ms)=2100

16/03/14 05:09:24 INFO mapred.JobClient:     Total committed heap usage (bytes)=337780736

16/03/14 05:09:24 INFO mapred.JobClient:   File Input Format Counters               ##计数器个数:1

16/03/14 05:09:24 INFO mapred.JobClient:     Bytes Read=261

16/03/14 05:09:24 INFO mapred.JobClient:   FileSystemCounters          ##计数器个数:4

16/03/14 05:09:24 INFO mapred.JobClient:     HDFS_BYTES_READ=505

16/03/14 05:09:24 INFO mapred.JobClient:     FILE_BYTES_WRITTEN=164155

16/03/14 05:09:24 INFO mapred.JobClient:     FILE_BYTES_READ=434

16/03/14 05:09:24 INFO mapred.JobClient:     HDFS_BYTES_WRITTEN=296

16/03/14 05:09:24 INFO mapred.JobClient:   Job Counters            ##计数器个数:7

16/03/14 05:09:24 INFO mapred.JobClient:     Launched map tasks=2

16/03/14 05:09:24 INFO mapred.JobClient:     Launched reduce tasks=1

16/03/14 05:09:24 INFO mapred.JobClient:     SLOTS_MILLIS_REDUCES=10635

16/03/14 05:09:24 INFO mapred.JobClient:     Total time spent by all reduces waiting after reserving slots (ms)=0

16/03/14 05:09:24 INFO mapred.JobClient:     SLOTS_MILLIS_MAPS=18759

16/03/14 05:09:24 INFO mapred.JobClient:     Total time spent by all maps waiting after reserving slots (ms)=0

16/03/14 05:09:24 INFO mapred.JobClient:     Data-local map tasks=2

16/03/14 05:09:24 INFO mapred.JobClient:   File Output Format Counters            ##计数器个数:1

16/03/14 05:09:24 INFO mapred.JobClient:     Bytes Written=296

aaarticlea/png;base64,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" alt="" />

 package org.dragon.hadoop.mapreduce.counter;

 import java.io.IOException;
import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
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 org.apache.hadoop.util.GenericOptionsParser; /**
* function:在wordcount中自定义计数器样例
* @author ZhuXY
* @time 2016-3-14 上午10:48:29
*
*/
public class DIYCounter {
static class MyMapper extends Mapper<LongWritable, Text, Text, IntWritable> { private Text word = new Text();
private final static IntWritable one = new IntWritable(1); // 快捷键alt+shift+s
// map方法每次只读取一行数据,换句话说就是每行启动一个map函数
@Override
protected void map(LongWritable key, Text value, Context context)
throws IOException, InterruptedException { //###############################################################
context.getCounter("DIYCOUTER_MAP_REDUCE", "MAP_INPUT_KEYVALUES")
.increment(1L);
//############################################################### // 获取每行数据的值
String lineValue = value.toString(); // 进行分割
StringTokenizer stringTokenizer = new StringTokenizer(lineValue); // 遍历
while (stringTokenizer.hasMoreElements()) { // 获取每个值
String worldValue = stringTokenizer.nextToken(); // 设置map, 输入的key值
word.set(worldValue);
context.write(word, one); // 如果出现就出现一次,存在每行出现几次,这时候键的值一样,多个键值对
}
}
} // Reducer 区域
static class MyReducer extends
Reducer<Text, IntWritable, Text, IntWritable> { private IntWritable resultIntWritable = new IntWritable(); // 这里key还是key。但是value变成了values
@Override
protected void reduce(Text key, Iterable<IntWritable> values,
Context context) throws IOException, InterruptedException { context.getCounter("DIYCOUTER_MAP_REDUCE", "REDUCE_INPUT_KEYVALUES")
.increment(1L); // 用于累加的变量
int sum = 0;
// 循环遍历Interable
for (IntWritable value : values) {
// 累加
sum += value.get();
} // 设置总次数
resultIntWritable.set(sum);
context.getCounter("DIYCOUTER_MAP_REDUCE", "REDUCE_OUTPUT_KEYVALUES")
.increment(1L);
context.write(key, resultIntWritable);
}
} // Client 区域
public static void main(String[] args) throws Exception { // 获取配置文件信息
Configuration configuration = new Configuration(); // 配置输入输出文件路径
args = new String[] {
"hdfs://hadoop-master.dragon.org:9000/wc/mininput",
"hdfs://hadoop-master.dragon.org:9000/wc/wcoutput" }; // 当命令格式不正确的时候,提示,类似于shell中的命令提示
String[] otherArgs = new GenericOptionsParser(configuration, args)
.getRemainingArgs();
if (otherArgs.length != 2) {
System.err.println("Usage: wordcount <in> <out>");
System.exit(2);
} // 创建job。设置配置文件信息和Job名称
Job job = new Job(configuration, "wc"); // 1、设置Job运行的类
job.setJarByClass(DIYCounter.class); // 2、设置Mapper类和Reducer类
job.setMapperClass(MyMapper.class);
job.setReducerClass(MyReducer.class); // 3、设置输入文件的目录和输出文件目录
FileInputFormat.addInputPath(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1])); // 4、设置输出结果的key和value的类型
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class); // 5、提交Job等待运行结果,并在客户端显示运行信息
boolean isSuccess = job.waitForCompletion(true); // 6、结束程序
System.exit(isSuccess ? 0 : 1);
}
}

View计数器 Code

028_MapReduce中的计数器Counter的使用的更多相关文章

  1. CSS计数器&colon;counter

    最近的需求,明星字体销售排行榜中,需要对字体的销售情况进行排序. 在早期,只有ol和ul可以对子元素li进行排序:如果不使用这两个标签,就由前台开发去手动填写序号. 当然,在这个需求中,数据不是实时更 ...

  2. 计数器&lpar;counter&rpar;,有序字典&lpar;OrderDict&rpar;,默认字典&lpar;defaultdict&rpar;,可命名元祖&lpar;namedtuple&rpar;,双向队列&lpar;deque&rpar;,单项队列&lpar;deuqe&period;Queue&rpar;

    Python_Day_05 计数器(counter),有序字典(OrderDict),默认字典(defaultdict),可命名元祖(namedtuple),双向队列(deque),单项队列(deuq ...

  3. JMeter&&num;160&semi;配置元件之计数器Counter

    配置元件之计数器Counter   by:授客 QQ:1033553122 测试环境 apache-jmeter-2.13 1.   计数器简介 允许用户创建一个在线程组范围之内都可以被引用的计数器. ...

  4. Mysql数据库中的计数器表实时更新

    如果某个应用中存在计数器,例如网站的总访问量.用户的粉丝数.文件下载数等等.如果相关应用在Mysql数据库的表中保存计数器,在更新计数器的时候可能会碰到并发问题.例如在web应用中,记录网站的点击次数 ...

  5. Python&lowbar;Day&lowbar;05 计数器&lpar;counter&rpar;,有序字典&lpar;OrderDict&rpar;,默认字典&lpar;defaultdict&rpar;,可命名元祖&lpar;namedtuple&rpar;,双向队列&lpar;deque&rpar;,单项队列&lpar;deuqe&period;Queue&rpar;

    Counter(计数器) 是一个字典的子类,存储形式同样为字典,其中存储的键为字典的元素,值为元素出现的次数,在使用之前我们需要先导入文件 import collections 初始化一个计数器 im ...

  6. Cassandra 计数器counter类型和它的限制

    文档基础 Cassandra 2.* CQL3.1 翻译多数来自这个文档 更新于2015年9月7日,最后有参考资料 作为Cassandra的一种类型之一,Counter类型算是限制最多的一个.Coun ...

  7. Jmeter -----计数器&lpar;counter&rpar;

    计数器的定义 Allows the user to create a counter that can be referenced anywhere in the Thread Group. The ...

  8. jmeter 配置元件之计数器Counter

    用jmeter生成数据 我用过几种以下几种方法 1.CSV Data Set Config  参数化 2.${_Random} ${_Random}是jmeter函数助手里面自带的一个函数,作用是返回 ...

  9. 解读:计数器Counter

    Counters: 44 File System Counters FILE: Number of bytes read=655771325 FILE: Number of bytes written ...

随机推荐

  1. java线程中的wait和notify以及notifyall

    一.区别与联系 1.1.wait(),notify()和notifyAll()都是java.lang.Object的方法,而确实sleep方法是Thread类中的方法,这是为什么呢?  因为wait和 ...

  2. ArcGIS Runtime for Android开发教程V2&period;0(1)基本概念

    原文地址: ArcGIS Runtime for Android开发教程V2.0(1)基本概念 - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http://blog.csd ...

  3. css的&excl;important规则对性能有影响吗

    最近在做项目中发现很多CSS代码里面都使用!important去覆盖原有高优先级的样式.按照常理来说,越是灵活的东西,需要做的工作就会更多.所以想当然的认为像!important这样灵活.方便的规则如 ...

  4. C和指针c6-1

    #include<stdio.h> #include<stdlib.h> char *find_char(char const *source_str, char const ...

  5. poj2356 Find a multiple&lpar;抽屉原理&vert;鸽巢原理&rpar;

    /* 引用过来的 题意: 给出N个数,问其中是否存在M个数使其满足M个数的和是N的倍数,如果有多组解, 随意输出一组即可.若不存在,输出 0. 题解: 首先必须声明的一点是本题是一定是有解的.原理根据 ...

  6. ES6核心内容精讲--快速实践ES6(二)

    Iterator和for...of 是什么: Iterator(遍历器)是专门用来控制如何遍历的对象,具有特殊的接口. 怎么用: Iterator(遍历器)对象带有next方法,每一次调用next方法 ...

  7. 浅入深出Vue:工具准备之WebStorm安装配置

    浅入深出Vue之工具准备(一):WebStorm安装配置 工欲善其事必先利其器,让我们先做好准备工作吧 导航篇 WebStorm安装配置 所有工具的下载地址都可以在导航篇中找到,这里我们下载的是最新版 ...

  8. 1、Linux文件结构介绍

    文件目录介绍 bin 可执行的命令 boot 启动相关的程序:boot→grub→grub.conf timeout修改启动时间 dev 设备.硬件相关信息 etc 程序.系统配置文件 home 用户 ...

  9. 安装使用git

    阿斯蒂芬 http://www.cnblogs.com/alex3714/articles/5930846.html

  10. Java LinkedList

    LinkedList是基于双向链表实现的,先看构造方法和方法 Constructor Summary Constructors Constructor Description LinkedList() ...