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

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

如下图所示:

执行效果如下:

,
    推荐阅读
  • 羊绒衫机洗缩水了怎么恢复(羊绒衫机洗缩水可以用什么方法解决)

    以下内容大家不妨参考一二希望能帮到您!厚纸板定性法,如果缩水太厉害的话,还要用硬纸板来配合定型。最好是按照原来的羊绒衫裁剪,将厚纸板套在羊绒衫,用夹子固定,最好配合蒸汽烫来使用。干洗店,在干洗店里面可以找到和衣服相同型号的特制架子,将羊绒衫挂上后用高温蒸汽处理,羊绒衫就可以恢复到原来的体型了。

  • 新手如何选择合适的鹦鹉(快来了解一下)

    新手如何选择合适的鹦鹉购买鹦鹉不建议购买野生成年个体,也就是所谓的“老野”,大多不亲人,不再学语,而且也不合法,影响野生种群,百害而无一利。牡丹鹦鹉有情侣鸟之称,是一种非常喜欢群居及深情亲切的鹦鹉,因其深情的天性而得名。情侣鹦鹉会与伴侣形影不离,相依相偎,而且多是会厮守终生。虎皮鹦鹉头羽和背羽一般呈黄色且有黑色条纹,毛色和条纹犹如虎皮一般,所以称为虎皮鹦鹉。

  • 自动挡倒车是哪个字母(自动挡车上的几个字母是什么意思?)

    不管是手动挡车型还是自动挡的车型,倒车的字母都是R。首先要确认车辆周围没有障碍物,再倒车。倒车时如果需要踩油门,必须轻点油门,切勿大脚油门,这样做主要是为了安全着想。因为倒车无法及时看到后面的情况,这种情况下猛踩油门,很容易发生意外。新手倒车,建议能不踩油门就不要踩油门,以怠速为主。P挡,英文parking的缩写,驻车挡。S挡,英文sport的缩写,运动挡。L挡,英文low的缩写,低速挡,也有叫爬坡挡的。

  • 孕期多种维生素矿物质片吃几片(孕期服用多种维生素矿物质片的Q)

    以叶酸为例,在孕前和早孕期补充合理剂量的叶酸可以显著降低胎儿神经管缺陷的发生。食物中的叶酸不稳定,遇强光和加热很容易失去活性。蔬菜贮藏2-3天后叶酸损失可达50%~70%。烹调后还会使一部分叶酸流失,煲汤等烹饪方法会使叶酸损失达50%~95%;盐水浸泡过的蔬菜,叶酸的成份也会损失很大。为了保障叶酸预防胎儿神经管缺陷的效果,一般建议在孕前2-3个月就开始口服含有叶酸的多种维生素。

  • 2022上半年韶关高中、中职 韶关市中职

    小编为大家整理了2022上半年韶关高中、中职(实习指导教师)教师资格认定指南,包括网报时间、认定条件等,详见下文。

  • 饥荒咖啡树怎么移植(方法教给大家)

    以下内容大家不妨参考一二希望能帮到您!饥荒咖啡树怎么移植首先,进入游戏后找到火山,火山里才能找到咖啡。移植需要作物是生长的状态,所以会用到灰。就是烧各种东西然后剩下的灰。咖啡树变成红色,可以移植了。挖掉之后得到咖啡树的根。如果没有施肥,直接铲掉,会得到两个小树枝。种植之后用灰施肥,然后等它长咖啡豆就可以了。咖啡豆有加速的功能。

  • 氟菌肟菌酯专治什么病(四氟菌酯可治什么病)

    氟菌肟菌酯专治黄瓜的炭疽病,靶斑病,白粉病,辣椒的炭疽病,番茄的叶霉病,早疫病,西瓜的蔓枯病等。此药物的特点是杀菌活性高,内吸性强,持效期也比较长,用来防治黄瓜,辣椒,番茄的主要病害,施加后也不会对环境造成较大污染。施加药物的时候要注意方法,控制好药物的浓度。

  • 犒劳意思是什么(犒劳解释)

    跟着小编一起来看一看吧!犒劳意思是什么犒劳是一个汉语词语,读音为kàoláo,意思是指用酒食或财物慰劳。出自明·冯梦龙《东周列国志》第五十一回:“军士知主公饮宴,欲求余沥犒劳,别无他意。”

  • 刀巴豆有什么功效(刀巴豆的功效介绍)

    刀巴豆有什么功效刀豆对于肾虚腰痛、气滞呃逆、风湿腰痛、小儿疝气等症有一定疗效。刀豆含有尿毒酶、血细胞凝集素、刀豆氨酸等。嫩荚中的刀豆赤霉I和Ⅱ等,有治疗肝性昏迷和抗癌的作用。刀豆对人体镇静也有很好的作用,可以增强大脑皮质的抑制过程,使神志清晰,精力充沛。刀豆还可以主治脾虚兼湿、食少便溏,湿浊下注、妇女带下过多,用于暑湿伤中、吐泻转筋等症状。

  • 脂肪肝发展成肝硬化多长时间(轻度脂肪肝3年后变肝硬化)

    而且脂肪肝发病正在呈现年轻化趋势,平均的发病年龄在40岁,30岁左右的群体也在增加。所以,不良的饮食习惯以及饮酒,是导致脂肪肝出现的根本诱因。脂肪肝是肝脏的脂质代谢紊乱,而这种紊乱会加剧肝脏的损伤。血清生化检查和肝脏B超检查是检测肝脏的检查方式。综合而言,轻度脂肪肝通过日常的调理可以缓解和逆转,病情相对严重的,则要展开综合性的治疗措施。