分享

根据自定义Hadoop中的计数器,根据控制台输出,判断mapreduce运行情况

问题导读:
1.如何自定义计数器?
2.计数器有多少个?
3.计数器分为几种?




计数器是用来记录job的执行进度和状态的。它的作用可以理解为日志。我们可以在程序的某个位置插入计数器,记录数据或者进度的变化情况。
1. 内置计数器
我们运行上一章中的例子,看一下计数器的输出内容,如图6-1
clip_image002_thumb1.jpg
图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个字节(空格、换行都是字符)。
分组File Output Format Counters包括一个计数器Bytes Written,表示job执行时读取的文件内容包括19个字节(空格、换行都是字符)。

2. 自定义计数器
以上分析的是系统内置的标准计数器。除此之外,我们也可以自己定义计数器使用。在上一章例子中,我们打算在map方法中统计空行记录的数量。代码如图6-2。
clip_image004_thumb2.jpg
图6-2
在图6-2中,我们首先通过Mapper.Context类直接获得计数器对象。这里有两个形参,第一个是计数器组的名称,第二是计数器的名称。然后通过第62行判断是否存在空行。如果有,进入条件判断语句块,调用计数器对象的increment方法。执行输出如图6-3所示。
clip_image005_thumb3.png
图6-3
在这里,计数器是20个,多了一个计数器组“Error Rows”,多了一个计数器“Empty Row”。




欢迎加入about云群425860289432264021 ,云计算爱好者群,关注about云腾讯认证空间

已有(1)人评论

跳转到指定楼层
perfri 发表于 2014-4-27 16:15:01
新手学习中,汲取经验了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条