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

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

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

介绍计数器是收集作业统计信息的有效手段之一,用于质量控制或应用级统计。计数器还可辅助诊断系统故障。如果需要将日志信息传输到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);

如下图所示:

执行效果如下:

,
    推荐阅读
  • 晚上睡觉空调多少度是最合适(空调温度开多少更佳)

    这本身就患有颈椎病,肩周炎等骨关节疾病的话,长时间待在空调房内,病情会反复发作,也会加重颈肩腿痛的问题。建议大家睡觉时可以将空调的温度调到27℃,即便如此,睡觉时也要盖着被子注意保暖,保护脚部和腰部,以免寒气入侵。

  • 关于防溺水安全的作文(关于防溺水安全的作文范文)

    防溺水安全重于泰山。特别是紧急情况下自我保护和救生手段的缺失。学校应发挥防溺水安全的主体作用,提高学生的防涨水安全的意识和技能。家长应承担起自己的职责,加强对自己子女的监管,时时教育和提醒他们远离水患。目前由于溺水事件的频发,让学生家长谈水色变,禁止游泳于是乎也就成了共识。禁止游泳不亚于堵源截流。

  • 冬天最佳跑步时间(冒着严寒收获的意外好处)

    冒着严寒收获的意外好处一年一度又中秋,又到了金九银十的季节,既是丰收也是团圆的日子随着天气的逐渐转凉,在这里给还在坚持健身的人点个赞在九,十月份这个秋高气爽的季节里,气温适中不高也不低,还是很适宜参加各类健身运动的,无论您。

  • 二月二龙抬头剪头发好不好 二月二龙抬头剪头发好不好?

    长辈们希望借龙抬头这一吉时,保佑孩子健康成长,长大后出人头地;大人理发,辞旧迎新,希望带来好运。二月二龙抬头是几号2019年的二月二龙抬头是2019年3月8日星期五,和“三八妇女节”为同一天。吃猪头肉称“挑龙头”,吃面条是“扶龙须”,吃水饺叫吃“龙耳”,吃米饭是吃“龙子”,吃春饼是吃“龙鳞饼”。

  • 油性皮肤如何护肤(油性皮肤护肤的方法)

    油性皮肤如何护肤补水保湿补水保湿对油性皮肤的护理是至关重要的。皮肤之所以会出油,是因为当身体的水分不够时,身体就会透支皮肤的水分。彻底清洁皮肤油性皮肤保养还要注意保持皮肤的清洁,油性皮肤的人一天洗脸至少二次。洗脸时,按部位清洗,先清洁额部头和鼻翼,然后是脸颊,下巴。洗面奶的选择油性皮肤的人最好选用性质比较温和的洗面乳洗脸。水温最好在20℃左右,过热会令皮脂水分流失,过冷又无法清洁彻底。

  • 经典胎教方法(最齐全胎教方法)

    孕期1~3个月,补充叶酸和维生素,摄取容易消化、清淡的食物,可减缓怀孕初期的不适症状。怀孕中期,因孕妇的食欲增加,应注意补充富含蛋白质、钙、植物性脂肪的营养食品。怀孕晚期,应控制水和盐分的摄入量,并监控体重的增加。父母用手在腹部抚摸胎儿,用手指对胎体轻按一下,胎儿会作出反应。除此之外,准妈咪每天做适量的运动,有助于顺产,并减少生产时会阴肌肉受损。

  • 海南旅行社集团有哪些(海南首家中外合资旅行社成立)

    11月5日,在省、市旅游等各相关单位密切联动下,海南省首家中外合资旅行社——三亚ThomasCook托迈酷客旅行社正式揭牌成立。近年来,在产品供给更新加快、旅游市场转型净化以及一系列利好政策的推动下,三亚入境游市场发展提速明显。截至目前,三亚的境外通航城市达34个,累计执飞国际航线40条;59国人员入境旅游免签政策实施以来,享受新政到三亚旅游的外国游客达14万人次。

  • 教学一体机放没有声音(教学一体机没有声音怎么办)

    2,外置音响,检查连接线是否松动或断开,音响设备是否出现问题,可以通过更换音响来检查是否是设备的问题。若不是设备的问题,进行第二步骤检测软件。2,Windows系统状态下,看桌面右下角工具栏是否有音量控制图标,如果没有,可能是驱动的问题。

  • 2021杭州萧山区汇宇小学学区划分 萧山汇宇花园学区划分

    学校主体建筑大气、流畅。教学楼、实验楼、行政综合楼、风雨操场、食堂所组成的建筑群错落有致,互为呼应。主大门的设计以活字印刷为灵感,以高贵、典雅的古铜色为主色,凹凸的字体、折叠的门式把古典与现代完美地结合在一起,让人感觉仿佛进入知识的殿堂。

  • 水杯盖子坏了怎样修复(怎样修复坏了的水杯盖子)

    水杯盖子坏了可以用502胶水粘一下如果粘不上的话可以找到买杯子的商家,让商家想办法再给你配一个盖子,一般卖的杯子都是标准规格,统一的型号盖子都可以相配,现在小编就来说说关于水杯盖子坏了怎样修复?下面内容希望能帮助到你,我们来一起看看吧!水杯盖子坏了怎样修复水杯盖子坏了可以用502胶水粘一下。另外,水杯通常是人们盛装液体的容器,平时可用来喝茶、喝水等。