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

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

如下图所示:

执行效果如下:

,
    推荐阅读
  • 汕头服博会有选品对接会吗现在(汕头潮博会)

    第二届中国·潮汕国际纺织服装博览会有两大选品对接会,即电商新渠道网红达人对接、服装暨连锁选品对接会。

  • 江苏健康管理师没有学历的能报的了吗

    江苏省报考健康管理师(三级)职业技能等级认定考试需要满足相应的学历条件,详见正文。

  • 2023沈阳大东区家电百货消费券领取成功在哪里查看?

    2023沈阳大东区家电百货消费券领取成功在哪里查看?消费券领取成功后,可以在微信卡包或者“乐享大东”微信小程序查看。查询步骤如下:1、打开微信,点击底部菜单栏“我的”→点击“卡包”→点击“券和礼品卡”即可查看;

  • 巧克力开封后能放多久 开封的巧克力放了几个月

    开封后的巧克力,建议及时食用完毕。如果天气不是非常炎热,可以将巧克力放置在清凉、干爽、清洁的室温阴凉处,避免阳光直接照射,远离水和其它热源。如没有拆封,在保存得当的基础上,纯巧克力保质期大致为2年,复合型巧克力为1年左右。

  • 摘下来的龙眼可以放多久(新鲜龙眼可以放多久)

    新鲜龙眼可以放多久新鲜龙眼如果保存方法得当,可以保存15天左右如果依靠专业的冷冻方法,可以让龙眼保存3个月左右龙眼比较适合在4-6摄氏度的环境下冷藏保存,像动物冬眠一样在这个温度下,龙眼有生命可以呼吸却消耗很少的能量但。

  • 梦见车撞车(梦见车撞车什么意思)

    梦见车撞车什么意思梦见开车撞车:雨过天睛,健康运上升虽然有一点不如意,但过后将精力充沛,可以过一段无病无痛的日子体力劳动者梦见开车撞车则您的健康:关注重点仍然是心脏,注意心态的平和此外,也有可能出现运动失调或痉挛的状况。

  • 不粘锅什么梗(不粘锅的含义)

    ,我来为大家讲解一下关于不粘锅什么梗?跟着小编一起来看一看吧!不粘锅什么梗不粘锅,网络流行词,指无论如何,都不背锅的人。只想做一个不粘锅,但有时候事与愿违,锅从天上来!不粘锅是做饭不会粘锅底的锅,因为锅底采用了不粘涂层,常见的、不粘性能最好的有特氟龙涂层和陶瓷涂层的。

  • 腊肉的晾制方法(腊肉的详细制作方法)

    腊肉的晾制方法准备食材:五花肉、生抽、老抽、高度白酒、料酒、八角、香叶、桂皮、花椒、盐、糖、姜。准备一个带盖的密封容器,倒入生抽、老抽、料酒、高度白酒,放入八角、香叶、桂皮、花椒、姜丝,适量的盐和糖,搅拌一下,将肉放进去,翻动一下,让肉均匀的沾上料汁。晒腊肉的天气最好要选择温度低且连续晴朗的日子,才不容易在晾晒的过程中腊肉变质。

  • 激情燃烧的岁月2剧情(大结局剧情)

    偶然机缘,他认识了被下放到这里的走资派儿子左太行以及在卫生队当护士的文工团舞蹈演员林东东。文向东终于接到上前线的命令。文向东连喝几杯酒,突然歇斯底里地要对林东东施暴。林东东气愤地推门而出。石林写血书上报领导,提出由他代替李方上前线,因为他知道李方的哥哥已经去世了。医院里,林东东向文向东提出离婚,文向东答应得很干脆。奔赴前线的时刻终于到了,林东东和宣传队员们饱含热情地表演着。

  • pe膜是什么(什么是pe膜)

    pe膜是什么PE薄膜,即聚乙烯薄膜,是指用PE颗粒生产的薄膜。PE膜具有防潮性,透湿性小。聚乙烯薄膜根据制造方法与控制手段的不同,可制造出低密度、中密度、高密度的聚乙烯与交联聚乙烯等不同性能的产品。同一密度的聚乙烯,由于成膜工艺的不同,它们之间也有不同的性能。这是因为流涎法能快速冷却,结晶度低,透明度较高,浊度小,但分子排列更趋无规则状态,所以阻隔性较小,即透过率较大,延伸率较低,抗撕裂性差。