温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

hadoop如何实现计数器

发布时间:2021-12-09 15:10:42 来源:亿速云 阅读:118 作者:小新 栏目:云计算

这篇文章将为大家详细讲解有关hadoop如何实现计数器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

1、定义计数器

        1)枚举声明计数器

Context context...//自定义枚举变量Enum
Counter counter = context.getCounter(Enum enum)

        2)自定义计数器

Context context...//自己命名groupName和counterName
Counter counter = context.getCounter(String groupName,String counterName)
2、为计数器赋值

        1)初始化计数器

counter.setValue(long value);//设置初始值

        2)计数器自增

counter.increment(long incr);//增加计数
3、获取计数器的值

        1) 获取枚举计数器的值

Job job...
job.waitForCompletion(true);
Counters counters=job.getCounters();
Counter counter=counters.findCounter("BAD_RECORDS");//查找枚举计数器,假如Enum的变量为BAD_RECORDS
long value=counter.getValue();//获取计数值

        2) 获取自定义计数器的值

Job job...job.waitForCompletion(true);
Counters counters=job.getCounters();
Counter counter=counters.findCounter("ErrorCounter","toolong");//假如groupName为ErrorCounter,counterName为toolong
long value=counter.getValue();//获取计数值

        3) 获取内置计数器的值

textpop-up
Job job...job.waitForCompletion(true);
Counters counters=job.getCounters();//查找作业运行启动的reduce个数的计数器,groupName和counterName可以从内置计数器表格查询(前面已经列举有)
Counter counter=counters.findCounter("org.apache.hadoop.mapreduce.JobCounter","TOTAL_LAUNCHED_REDUCES");//假如groupName为org.apache.hadoop.mapreduce.JobCounter,counterName为TOTAL_LAUNCHED_REDUCES
long value=counter.getValue();//获取计数值

        4) 获取所有计数器的值

Counters counters = job.getCounters();
for (CounterGroup group : counters) {
    for (Counter counter : group) {
            System.out.println(counter.getDisplayName() + ": " + counter.getName() + ": "+ counter.getValue());    
    }
 }

关于“hadoop如何实现计数器”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI