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

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

如下图所示:

执行效果如下:

,
    推荐阅读
  • 英语俗语俚语大全(了解这些单词的含义)

    不少电视剧的重逢桥段,背景都设在超市。一提到超市,小优最先想到的就是薯片可乐和各种零食!但是逛超市也能学到很多知识哦,你知道,在国外购物时最常出现的对话是什么吗?01之前一位同学说他在国外被一句"Anycashback?"害的好苦啊,先不公布正确解释,小伙伴们可以在心里想一个答案。

  • 古墓盗墓的真相(真的有鬼魂)

    原来,有两名盗墓贼被困墓穴之中,无奈之下只好报警求助。这几处铭文,也被称之为“法老的诅咒”。霍华德.卡特在埃及考察时,受到了卡纳冯勋爵的资助,当图坦卡蒙金字塔被发现时,霍华德.卡特立即通知卡纳冯勋爵前往,共同主持挖掘工作。但在卡纳冯勋爵进入金字塔后不久,就因被蚊虫叮咬而很快死亡,之后,卡纳冯勋爵的弟弟也因病去世。虽然世界本没有那么多的灵异事件,但保持对世界的敬畏之心仍旧是有必要的。

  • 洗衣机不进水是什么原因(洗衣机不进水解决方法)

    洗衣机不进水是什么原因可能是因为没有盖好洗衣机的盖子,这不是洗衣机的问题,而是因为没有正常使用洗衣机。进水电阀出现了故障。如果是过滤网发生堵塞,只需要将其清理,全自动洗衣机不进水的问题就能得到解决。如果进水电磁阀和继电器发生故障,就只有将其更换,洗衣机才能正常使用。如果是机器内部的问题了,这时最好还是联系专业维修人员来进行维修。

  • 志愿者精神的核心是什么(志愿者精神的核心是啥)

    志愿者精神的核心是什么志愿精神的核心是服务、团结的理想和共同使这个世界变得更加美好的信念。志愿者精神意指一种互助、不求回报的精神,它提倡“互相帮助、助人自助、无私奉献、不求回报”。志愿者凭借自己的双手、头脑、知识、爱心开展各种志愿服务活动,无偿帮助那些需要帮助的人们。

  • word中显示文档修改记录(这么做让word自动记录修改明细)

    Hello.大家好,核对word文档修改了哪些内容,是我在职场中最不愿意遇到的工作,极其浪费时间。使用这种方法来记录word修改的内容是不是非常的方便快捷呢?

  • 丁香油钓鲫鱼哪个季节最好用(学会这几种丁香油的制作方法)

    鲫鱼体型小,受气温的影响非常大,想要钓多、钓好,窝料的味型,不仅要浓,还一定要香,性价比最高的,莫过于酒米,而最为出名的,又莫过于麝香米和丁香米。用丁香来制作药酒,常见的用法有两种,一种是丁香加酒,比如10~15克公丁香,加入一斤高度酒,浸泡约1个月以上,就可以使用了。第一种、加热熬油法准备约200克食用油,最好是花生油,胡麻油效果最差,准备20克公丁香,将食用油倒入锅中,小火将油加到微热。

  • 水果大蒜是什么(关于水果大蒜)

    水果大蒜是什么水果大蒜是木奶果,也叫蒜瓣果,是植物木奶果的成熟果实,它的生长形态比较独特,生长在植物木乃骨的树干上,成熟后外表多为暗红色,里面的果肉为白色,其结构与蒜瓣相似。木奶果是一种营养价值极高的美味水果,它去掉果皮后可以直接食用,果肉鲜嫩多汁、酸甜可口。木奶果是大戟科木奶果属的常绿乔木,热带雨林植物代表种类之一。它分布于印度、马来西亚、泰国及中国云南、海南等地。

  • 如何调理身体的脾胃(养生先调脾胃)

    人出生后,所有的生命活动都有赖于后天脾胃摄入的营养物质。所以,在调理机体时尤其注意调理脾胃气机。脾胃与其他脏腑关系密切,脾胃有病很容易影响其他脏腑。中医认为,脾的运化功能与人的形、窍、志、液都是相关的。对热病后期,正气不足神疲乏力,饮食减少尤其适食。

  • 黄果树瀑布简介(黄果树大瀑布)

    古称白水河瀑布,亦名黄葛墅瀑布或黄桷树瀑布,因本地广泛分布着黄葛榕而得名。位于中国贵州省安顺市镇宁布依族苗族自治县,属珠江水系西江干流南盘江支流北盘江支流打帮河的支流可布河下游白水河段水系,为黄果树瀑布群中规模最大的一级瀑布,是世界著名大瀑布之一。黄果树瀑布属喀斯特地貌中的侵蚀裂典型瀑布。黄果树瀑布出名始于明代旅行家徐霞客,经过历代名人的游历、传播,成为知名景点。

  • 北方茶叶种植条件 北方茶叶种植条件是什么

    中国是世界上第一大茶叶生产和种植国,中国茶叶市场的需求量很大,也有越来越多的人投身茶叶种植行业。种植地土壤为红壤、黄壤、沙壤土、棕色森林土等,土壤偏酸性,PH值在4-6之间,土壤疏松性、透气性良好,机质含量丰富。种植地相对湿度为80%-90%,土壤含水量在70%-80%之间,年平均降雨量为1000-2000毫米,生长季节的月降雨量在100毫米以上。阳光充沛、月平均气温应在18℃以上。