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

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

如下图所示:

执行效果如下:

,
    推荐阅读
  • troc是什么车 上海大众troc是什么车

    桂格是一汽大众推出的首款SUV。很多车主认为桂格是一款集现代科技与精致生活于一体的高品质SUV。桂格共推出八款车型,官方指导价13.98-20.98万元。这款车虽然是一款紧凑型SUV,但是在空之间在性能上有了新的突破,这款车的设计给人更舒适的驾驶体验。大众索歌共推出两款动力车型,分别搭载1.2T和1.4T发动机。其中1.4T发动机最大功率110kw,最大峰值扭矩250Nm。这款发动机在高尔夫、速腾、迈腾等众多大众车型上都有使用,但1.8T排量的发动机配备的是湿式。

  • 泰兴市身份证办理地点和时间(泰兴市身份证办理地点和时间电话)

    泰兴市:泰州市泰兴市分界派出所地址:泰州市泰兴市分界镇电话:0523-87955670时间:周一到周五9:00-17:00泰州市泰兴市广陵派出所地址:泰州市泰兴市广陵镇电话:0523-87955785时间:周一到周五9:00-17:00泰州市泰兴市大生派出所地址:泰州市泰兴市大生镇电话:0523-87955620时间:周一到周五9:00-17:00泰州市泰兴市鼓楼派出所地址:泰州市泰兴市府前街电话

  • 童年作者简介(童年作者个人资料介绍)

    4岁时父亲去世,他跟母亲一起在外祖父家度过童年。10岁那年,高尔基开始独立谋生。1906年,高尔基受列宁的委托,由芬兰去美国进行革命活动,在美国出版长篇小说《母亲》。后定居意大利卡普里岛。1921年10月,由于疾病,也由于与布尔什维克政权的分歧,高尔基出国疗养。但20世纪30年代苏联出现的种种问题又使他与斯大林及现实政治始终保持一定的距离。1936年6月18日2时30分,68岁的高尔基因病去世。

  • 曾经我也想过一了百了中文歌词(曾经我也想过一了百了中文歌词介绍)

    曾经我也想过一了百了中文歌词?接下来我们就一起去研究一下吧!汤唯曾翻唱过此曲。

  • 中秋节怎样做月饼(做月饼的方法)

    中秋节怎样做月饼转化糖浆倒入碗里,加入枧水和花生油。用打蛋器搅拌均匀,筛入中筋面粉和奶粉。月饼模具内撒上一些面粉防粘,把包好的面团放入模具。按压模具使月饼成型。在月饼表面喷一些水,放入预热好200度的烤箱,烤5分钟,取出来在月饼表面刷一层薄薄的蛋黄水,重新放入烤箱,再烤15分钟左右,直到烤成金黄色即可出炉。出炉的月饼冷却后密封保存,等待2-3天,饼皮回油后再食用。

  • 周末早上好问候语大全(适合周末的早安问候句子)

    友谊就是愉悦的蓓蕾,早安!我不是太阳,不能在每一天把最早的温暖送给你,但我却可以用最朴实的方法为你送去最真挚的问候,那就是做第一个给你发祝福短信的人:早安快乐。这是个和谐的早晨,阳光还是样光彩,花朵还是样盛开,微风还是样徘徊,幸福还是样开怀,我们还是样精彩,早安!不管远也好,近也好;见面也好,短信也好,愿你幸福就好,早安!轻轻道声早安,传去我无限关怀。

  • iPhone电池寿命88%要换吗

    iPhone电池寿命88%要换。按照目前iPhone官方说明,电池健康度低于80%后就必须更换电池了,通常情况下iPhone的电池可以使用两年。2004年,iPhone公司召集了1000多名内部员工组成研发iPhone团队,开始了被列为高度机密的项目,订名为“ProjectPurple”,当中包括iPhone的幕后设计师JonathanIve。当时iPhone公司的首席执行官史蒂夫·乔布斯从原本的重点如iPadair的平板电脑偏离至转向手机。

  • 王维最有名的十首诗名句(王维最经典的七律)

    一王维的七律,《唐诗三百首》中选了四首,其中最经典的当属《积雨辋川庄》,今天小楼就跟大家一起读这首诗。此诗颔联,虽其惹上了点不清不楚的“抄袭”官司,但传诵千古,成了公认的名句。积雨,意为久雨。葵菜有“百菜之主”之称。尾联王维用两个典故,表明自己已经忘却声名,与山中农人打成一片,也已毫无机心,于人无碍,与世无争了。且看花悟道的,应该是王阳明,而不是王维。漠漠水田飞白鹭,阴阴夏木啭黄鹂。

  • 治疗尿道结石和肾结石都相当猛(肾结石尿道结石)

    刺苋菜刺苋菜根部猪小肠海金沙由于环境污染和人们生活水平提高,肾结石及尿道结石患者逐年增多。很多人采取了手术微创取石,或是超声波碎石。医术虽比以前开刀进步了很多,但对于病人来说也是重创,而且还会有复发可能性。加水6碗煮至剩3碗,去药渣喝汤及吃小肠,每日一碗,服用3~6服即可见效。建议服用前彩超检测过,确实是结石,才能服用。服用后过一个月再去做一次检测,观察是否有效。

  • 真三国无双8要买什么才能玩(为什么真三国无双8不太好玩)

    2003年,我购入PS2的时候,附带的游戏就是《真三国无双2》,机器拿回家,第一时间就点开玩了。因为我本身非常热爱SLG游戏,所以告诉老板我要玩《真三国无双2》。尽管最新的《真三国无双8》饱受诟病,因为作为一款沙盒游戏,它是失败的;但作为一款无双割草游戏,它依然可圈可点。说明这么多年来,支持真三国无双的粉丝还是那批老粉丝。可见真三国无双系列并没有吸引新人入坑的魅力。