[MapReduce] Counter

本文详细介绍了MapReduce中的Counter工具,包括Counter的定义、CounterGroup的构成、使用方法以及不同类型的Counter,如内置Counter(TaskCounter、JobCounter、FileSystemCounter等)和自定义Counter(静态和动态)。Counter用于跟踪MapReduce作业的进度和统计信息,帮助开发者监控任务执行情况。
摘要由CSDN通过智能技术生成

Definition

Counter

Counter是hadoop mapreduce framework所提供的一个工具,用来追踪mapreduce job的进度。
Counter表示全局的计数器,由MapReduce framework或者Application定义。每一个Counter有一个与之相关联的name和long类型的value。Counter通过Enum类来定义,Enum类定义一个CounterGroup, 每个field顶一个一个Counter的name.

CounterGroup

CounterGroup是由逻辑上属于一个group的所有的Counter所组成。一个CounterGroup对应一个枚举类,每一个Counter对应枚举类里面的一个枚举值。下面这段代码是Counter和CounterGroup的一个例子,在这个例子中,FileSystemCounter是一个枚举类,对应于FileSystemCounter这个CounterGroup,这个CounterGroup里面包含多个Counter,BYTES_READ是其中一个Counter。

public enum FileSystemCounter {
   
 BYTES_READ,
 BYTES_WRITTEN,
 READ_OPS,
 LARGE_READ_OPS,
 WRITE_OPS,
 BYTES_READ_EC,
}

Usage

Counter主要用来记录事件发生的次数。Hadoop mapreduce counter会追踪如下事件:

  • job里面包含的map/reduce任务数量
  • job read/write多少个字节
  • map/reduce launched/failed/killed count
  • cpu/memory usage of job

Counter types

在这里插入图片描述
总体上来讲,Counter分为built-in counter和customized counter两大类,built-in counter是mapreduce framework定义的counter,customized counter是用户在mapreduce application中自己定义的counter,下面我们以此介绍这些counter。

Built-in Counter

Built-in counter也就是hadoop mapreduce framework为每一个job定义的counter,用来上报和job相关的统计信息。举个例子,可以使用built-in counter来记录读/写了多个少字节,读/写了多少记录,通过这些统计信息我们可以确认,预期数量的输入被处理了,预期数量的输出被生产了。

TaskCounter

TaskCounter可以用来追踪每个task进度,是由每个TaskAttempt维护,会周期性的把counter发送给ApplicationMaster,然后在全局范围类做聚合。如下所示,我们会对比较重要的Counter的含义通过注释进行说明。

public enum TaskCounter {
   
  MAP_INPUT_RECORDS,
  MAP_OUT
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值