百摩网
当前位置: 首页 生活百科

mapreduce队列设置(MapReduce中的计数器)

时间:2023-08-20 作者: 小编 阅读量: 1 栏目名: 生活百科

介绍计数器是收集作业统计信息的有效手段之一,用于质量控制或应用级统计。计数器还可辅助诊断系统故障。如果需要将日志信息传输到map或reduce任务,更好的方法通常是看能否用一个计数器值来记录某一特定事件的发生。

接着 Hadoop之MapReduce分区 这一篇的内容。

介绍

计数器是收集作业统计信息的有效手段之一,用于质量控制或应用级统计。计数器还可辅助诊断系统故障。如果需要将日志信息传输到 map 或 reduce 任务, 更好的方法通常是看能否用一个计数器值来记录某一特定事件的发生。对于大型分布式作业而言,使用计数器更为方便。除了因为获取计数器值比输出日志更方便,还有根据计数器值统计特定事件的发生次数要比分析一堆日志文件容易得多。

hadoop内置计数器列表

MapReduce任务计数器

org.apache.hadoop.mapreduce.TaskCounter

文件系统计数器

org.apache.hadoop.mapreduce.FileSystemCounter

FileInputFormat计数器

org.apache.hadoop.mapreduce.lib.input.FileInputFormatCounter

FileOutputFormat计数器

org.apache.hadoop.mapreduce.lib.output.FileOutputFormatCounter

作业计数器

org.apache.hadoop.mapreduce.JobCounter

每次mapreduce执行完成之后,我们都会看到一些日志记录出来,其中最重要的一些日志记录如下截图

所有的这些都是MapReduce的计数器的功能,既然MapReduce当中有计数器的功能,我们如何实现自己的计数器?

需求:以分区代码为案例,统计map接收到的数据记录条数

第一种方式定义计数器,通过context上下文对象可以获取我们的计数器,进行记录

通过context上下文对象,在map端使用计数器进行统计。

增加PartitionMapper.java

import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.NullWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Counter;import org.apache.hadoop.mapreduce.Mapper;import java.io.IOException;public class PartitionMapperextends Mapper<LongWritable, Text,Text, NullWritable> {/*** map方法将K1和V1转为K2和V2*/@Overrideprotected void map(LongWritable key, Text value, Mapper<LongWritable, Text, Text, NullWritable>.Context context) throws IOException, InterruptedException {Counter counter = context.getCounter("MR_COUNT", "MyRecordCounter");counter.increment(1L);context.write(value,NullWritable.get());}}

同时在主类中增加设置:

job.setMapperClass(PartitionMapper.class);job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(NullWritable.class);

如下图所示:

运行程序之后就可以看到我们自定义的计数器在map阶段读取了15213条数据:

第二种方式,通过enum枚举类型来定义计数器,统计reduce端数据的输入的key有多少个

增加PartitionerReducer.java

import org.apache.hadoop.io.NullWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Reducer;import java.io.IOException;public class PartitionerReducer extends Reducer<Text, NullWritable,Text,NullWritable> {public static enum Counter{MY_REDUCE_INPUT_RECORDS,MY_REDUCE_INPUT_BYTES}@Overrideprotected void reduce(Text key, Iterable<NullWritable> values, Reducer<Text, NullWritable, Text, NullWritable>.Context context) throws IOException, InterruptedException {context.getCounter(Counter.MY_REDUCE_INPUT_RECORDS).increment(1L);context.write(key, NullWritable.get());}}

同时在主类中增加设置:

job.setReducerClass(PartitionerReducer.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(NullWritable.class);

如下图所示:

执行效果如下:

,
    推荐阅读
  • 柴油货车怎么分国几(柴油车怎么分国几车)

    五是第五阶段机动车污染物排放国家标准。其实六是对轻型车排放的过分要求,六是对轻型车。在国五和国六的要求中,汽油机和柴油机对这些有害气体的要求真的不一样。现在说说国五,其中对CO的要求是汽油机1000mg/km,柴油机500mg/km。国ⅴ和国ⅵ的尾气排放限值差别很大。国五和国六不仅仅是数值上的要求,实际上大多数人看不到的是汽车的布局差异,尤其是柴油发动机的巨大挑战。一切都在默默前行,第六国民时代迟早会成熟。

  • 电脑cpu怎么设置性能高(电脑小技巧--CPU使用率高)

    旧电脑可能内存条金手指要清理下氧化层。导致cpu的温度过热,不能同时兼容多种硬件。

  • 2021年南通中考各科目命题+考试范围(2021年南通中考试卷)

    考试范围:义务教育教科书《语文》7-9年级。2020年5月—2021年4月国内外重大时事政治及党和国家重大的方针政策。其中规定使用2019年考试项目和评分标准。

  • mp5冲锋枪有哪些型号(MP5系列冲锋枪)

    它的上镜率极高,从某种程度上说,MP5系列冲锋枪已经成为反恐力量的一种象征。几十名SAS队员借助昏暗的月光,使用MP5冲锋枪发起了突袭。在MP5强大的火力压制下,恐怖分子根本无法招架。11分钟后,6名恐怖分子中5人被当场射杀,只有1名混在人质中才幸免一死,MP5的射击精度和可靠性再次得到了验证。

  • iphone忘记密码怎么办(iphone忘记密码怎样做)

    下面希望有你要的答案,我们一起来看看吧!iphone忘记密码怎么办手机长按音量减键+电源键滑动关机,音量加键和减键各一下,长按电源键当出现苹果标志松下电源键,继续长按电源键,直到进入iphone恢复模式,如没能进入多尝试几次即可。电脑端打开iTunes,用数据线将手机与电脑连接,电脑检测到手机,恢复。恢复并更新,同意,等待恢复完成即可。

  • 羊肉和茄子能一起吃吗(羊肉和茄子能不能一起吃)

    跟着小编一起来看一看吧!在食品营养成分上而言,羊肉肉质鲜嫩,主要含有蛋白质,脂类、维生素、部分纤维素以及多中矿物质元素,而茄子口感软糯,其中含有水分、纤维素、碳水化合物、胡萝卜素、多种微生物以及微量元素,各自成分之间并不相克,也不会产生对身体不利的反应,搭配食用很是合适,并且味道甚佳。在性味方面,羊肉属于温性食物,而茄子性凉,虽然性味不同,但是有利于中和各自的性味,相对减少刺激,对身体更有益处。

  • 微信答谢朋友生日祝福短信(适合答谢朋友生日祝福的句子)

    微信答谢朋友生日祝福短信谢谢你愿意走进我的生命,扮演朋友的角色,或许你不是唯一最好的,但却是我生命中最精彩的!无论何时何处总有人给我帮助与关怀。一再的体会,一再的确信,是大家用爱心与宽容组成了我生活的点点滴滴。感谢有你,生活不在孤单;感谢有你,距离不在遥远,感谢有你!昨天,因为有缘相识,我们选择感谢;今天,因为你的亲切关注,我们选择感谢;明天,因为你的积极参与,我们继续选择感谢。

  • 腊排骨炖土豆的家常做法(腊排骨炖土豆怎么做)

    我们一起去了解并探讨一下这个问题吧!腊排骨炖土豆的家常做法食材:腊排骨、土豆、食盐、味精、食用油、干辣椒、清水、姜、大蒜、花椒。土豆切块备用,腊排骨剁小块备用。大火烧开后捞出排骨,用清水冲洗干净。大火烧开后改小火炖1小时。加入土豆炖至土豆熟即可出锅。

  • 公园里的儿童乐园(流动儿童从此有了开心乐园)

    位于番禺的一个“小禾的家”开展的阅读活动。值得关注的是,今年,广州首次向联合国提交了为实现联合国2030可持续发展目标的地方自愿陈述报告。报告显示,广东省千禾社区基金会在广州多个社区正联动社会多方打造“小禾的家”。2017年5月,朱小梅和四位来穗妈妈共同发起成立了蓝欣社区公益服务中心,协助解决流动家庭在学习、工作、生活上的困难。此后,广东省千禾社区基金会提供了资助,并与蓝欣公益共同打造“小禾的家”。

  • 热水器清洗过后不出水是怎么回事(热水器清洗后不出热水)

    热水器是家庭常用电器之一,目前市面上主要有电热水器和燃气热水器两种一般情况下,热水器使用时间较长后,里面会有很多的脏东西如果不及时清洗,可能会影响到热水器的正常使用但是,有些用户在清洗完热水器后,会发现自家热水器不出热水了,这是怎么回事?热水器清洗过后不出水是怎么回事热水器是家庭常用电器之一,目前市面上主要有电热水器和燃气热水器两种。如果堵塞严重,则需要更换新的花洒及软管。