Hadoop中的计数器

计数器是用来记录job的执行进度和状态的。它的作用可以理解为日志。我们可以在程序的某个位置插入计数器,记录数据或者进度的变化情况。

1. 内置计数器

我们运行上一章中的例子,看一下计数器的输出内容,如图6-1

clip_image002

图6-1

在图6-1中,计数器有19个,分为四个组:File Output Format Counters、FileSystemCounters、File Input Format Counters和Map—Reduce Framkework。

分组File Input Format Counters包括一个计数器Bytes Read,表示job执行结束后输出文件的内容包括19个字节(空格、换行都是字符),见图5-10-1。

分组File Output Format Counters包括一个计数器Bytes Written,表示job执行时读取的文件内容包括19个字节(空格、换行都是字符),见图5-9-1。

2. 自定义计数器

以上分析的是系统内置的标准计数器。除此之外,我们也可以自己定义计数器使用。在上一章例子中,我们打算在map方法中统计空行记录的数量。代码如图6-2。

clip_image004

图6-2

在图6-2中,我们首先通过Mapper.Context类直接获得计数器对象。这里有两个形参,第一个是计数器组的名称,第二是计数器的名称。然后通过第62行判断是否存在空行。如果有,进入条件判断语句块,调用计数器对象的increment方法。执行输出如图6-3所示。

clip_image005

图6-3

在这里,计数器是20个,多了一个计数器组“Error Rows”,多了一个计数器“Empty Row”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值