肥宅钓鱼网
当前位置: 首页 钓鱼百科

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);

如下图所示:

执行效果如下:

,
    推荐阅读
  • 睡前必看的10种动物(这些动物的真实)

    斑马是奇蹄目马科马属3种兽类的通称,包括细纹斑马、山斑马、平原斑马。实验表明,在所有不同的颜色配比中,斑纹是最不吸引蚊虫叮咬的。此外,也有相关研究表明,一些原始部落会采用斑马状的彩绘图案,这些图案能够极大程度地帮他们降低被马蝇叮咬的次数。在给缘小检查的时候,专家发现它的一只后腿出现了骨头错位的情况。为了帮助这只大熊猫治疗,专家剃掉了那只后腿的毛发。

  • 白银价格涨至近8年高点(白银价格下降)

    白银价格涨至近8年高点,升至8年高点后回落,白银上涨幅度降温仍趋势偏强,银价恐还有大幅回调风险、金价仍有大涨空间。当前,疫情好转后,工业复工复产,作为广泛应用于电子,半导体,太阳能电池板,水净化,电池,LED照明以及珠宝中的重要材料,白银需求大涨已是大势所趋。当天,港股上市的中国白银集团股价涨幅也一度高达45%。这波狂潮助推亚洲材料类股成为了MSCI亚太指数中的表现第三佳类股。

  • 感情伤心的句子说说(对感情伤感的句子)

    下面希望有你要的答案,我们一起来看看吧!感情伤心的句子说说没心没肺,也需要先有心有肺,再被伤的没心没肺,那个过程叫做“痛彻心扉”。既然可以承诺,就不要轻易食言。你的泪为她流,她的泪又为他流,永远都是这么悲剧德循环。如果我放弃了、不是因为我输了、而是我懂了。过去的一页,能不翻就不要翻,翻落了灰尘会迷了双眼。把別人看得太重,結果卻被別人看成什么都不是。

  • 蝎子的保健作用(蝎子有如下保健效果)

    蝎子的保健作用祛风除湿:祛风除湿是人们吃蝎子的重要好处之一,它能去除身体里的风湿毒气,并能抑制人体内风湿因子的活性,而且能加快人体内尿酸分解和代谢,对人类经常出现的风湿骨痛和痛风以及关节疼痛,肢体麻木等症都有明显治疗和预防作用。

  • 减脂期适合做什么运动(什么运动能够减脂)

    减脂期适合做什么运动12分钟的自由泳消耗热量,时间短且热量消耗大的游泳运动是节省减肥时间的最好选择。同样是游泳,自由泳的运动量比较大,只需要12分钟就能消耗掉大量热量,赶快试一下吧!每日1万步的行走能保持体型不反弹,以感觉稍稍有些出汗的速度,每天行走1万步,1个月就可以减重l千克。在台阶等有坡度的地方行走更为有效。慢跑属于有氧运动,进行20分钟后,体内的脂肪开始燃烧,达到减肥的功效。

  • 肩周炎肩膀疼痛怎么办(肩膀疼痛不一定是肩周炎)

    肩后侧的疼痛原因很多,可能是肩关节本身的问题,也可能是颈椎或者内脏的原因,如心脏、胆囊。如果疼痛的位置很清晰、固定,一般比较好诊断,根据解剖结构对应即可。如果疼痛的位置模糊变换不定,则可能是肩周炎,肩骨关节炎,脏器引起的疼痛等,需要综合考虑和判断。如果疼痛可以通过改变体位和姿势来减轻,多数是结构上的改变,而疼痛持续存在和姿势无关,和劳累寒冷有关,则要考虑关节炎或者劳损的可能。

  • ca1254航班安全通道(国航CA1704航班遇颠簸下降千米)

    晚间,国航官方证实,CA1704航班飞行过程中突遇晴空颠簸,机组按规定处置,飞机正常下降,期间无旅客受伤。经医院初步诊断,有两名当时执行客舱安全检查任务的乘务员软组织挫伤。除了较早发布微博爆料的乘客,还有一名当事人描述了国航CA1704事件的相关细节。事实上,这已经是8月份以来国内民航客机发生的第三起安全事件。经调查,此起事件是因为飞机后货舱门封严条故障造成。

  • 兰博基尼urus2022款外观颜色(2023款兰博基尼UrusPerformante上市)

    兰博基尼urus2022款外观颜色近日,2023款兰博基尼URUSPerformante正式上市。动力搭载4.0T发动机,新增加了RALLY驾驶模式。新车前头依旧低趴,延续了兰博基尼的家族式线条设计风格。LED大灯组精神闪亮,带有大灯随动转向。后方侧裙饰板带有Performante标识。新车标配了后排隐私玻璃。方向盘真皮包裹,带有4向电动调节和换挡拨片。新车没有换挡杆,换挡主要通过换挡拨片实现。真皮座椅非常运动,带有前排座椅加热和前排座椅记忆,前排座椅腿托等。

  • 2023年体育中考统考有跳绳吗?(体育中考有没有跳绳)

    各位中考生及家长,备受关注的珠海市2023年体育中考方案定了。关于今年体育中考,您想知道的都在这!

  • 辽宁城市城建排名(辽宁省14地市城建一览)

    引用辽宁省14地级市车牌字母代码,集中展示辽宁省14地级市高层建筑和城市风貌。辽G锦州锦州百花塔锦州的辽代古塔保佑着锦州儿女锦州喜来登高达188米茂业中心大厦锦州开发区宏运商务大厦辽H营口万达国际中心高达160米左右辽J阜新辽K辽阳辽L盘锦辽M铁岭日鑫大厦高达100米辽N朝阳辽P葫芦岛高滨海高达238米