当前位置: 首页 > news >正文

MapReduce: 计数器(Counter)

一、MapReduce计数器是什么?

  计数器是用来记录job的执行进度和状态的。它的作用可以理解为日志。我们可以在程序的某个位置插入计数器,记录数据或者进度的变化情况。

二、MapReduce计数器能做什么?

  MapReduce 计数器(Counter)为我们提供一个窗口,用于观察 MapReduce Job 运行期的各种细节数据。对MapReduce性能调优很有帮助,MapReduce性能优化的评估大部分都是基于这些 Counter 的数值表现出来的。

三、MapReduce 都有哪些内置计数器?

  MapReduce 自带了许多默认Counter,现在我们来分析这些默认 Counter 的含义,方便大家观察 Job 结果,如输入的字节数、输出的字节数、Map端输入/输出的字节数和条数、Reduce端的输入/输出的字节数和条数等。下面我们只需了解这些内置计数器,知道计数器组名称(groupName)和计数器名称(counterName),以后使用计数器会查找groupName和counterName即可。

1、任务计数器

1)、MapReduce 任务计数器

2)、文件系统计数器

3)、FileInputFormat 计数器

4)、FileOutputFormat 计数器

2、作业计数器

    作业计数器由 JobTracker(或者 YARN)维护,因此无需在网络间传输数据,这一点与包括 “用户定义的计数器” 在内的其它计数器不同。这些计数器都是作业级别的统计量,其值不会随着任务运行而改变。 作业计数器计数器的 groupName为org.apache.hadoop.mapreduce.JobCounter,

四、计数器的该如何使用?

下面我们来介绍如何使用计数器。

1、定义计数器

1)枚举声明计数器

2)自定义计数器

2、为计数器赋值

 1)初始化计数器

 2)计数器自增

3、获取计数器的值

1) 获取枚举计数器的值

2) 获取自定义计数器的值

3) 获取内置计数器的值

4) 获取所有计数器的值

五、自定义计数器

  自定义计数器用的比较广泛,特别是统计无效数据条数的时候,我们就会用到计数器来记录错误日志的条数。

详见原文:https://www.cnblogs.com/codeOfLife/p/5521356.html

相关文章:

  • Hive:HiveQL中如何排查数据倾斜问题
  • Java:字符序列:String,StringBuilder,StringBuffer三者的区别
  • Hive:分区和分桶
  • sql:Oracle:驱动表是什么?
  • MapReduce:原理之Word Count 以及Java实现
  • Hive:数据倾斜调优/解决方案总结
  • Spark:对数据倾斜的八种处理方法
  • Spark:spark集群中什么是cpu-core 内核?RDD分区个数?集群的节点个数?及三者与并行度的关系
  • Spark:通过sample算子找出导致数据倾斜的key
  • MapReduce:用通俗易懂的大白话讲解MapReduce原理
  • Spark:任务中如何确定spark分区数、task数目、core个数、worker节点个数、excutor数量
  • JVM :内存初学 (堆(heap)、栈(stack)和方法区(method) ) perfect
  • BI测试
  • BI、数据仓库、ETL、大数据开发工程师
  • Java:IO:FileInputStream与FileReader的区别
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • JAVA并发编程--1.基础概念
  • Laravel Telescope:优雅的应用调试工具
  • Material Design
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • PHP的Ev教程三(Periodic watcher)
  • 包装类对象
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 类orAPI - 收藏集 - 掘金
  • 前端学习笔记之观察者模式
  • 微信小程序设置上一页数据
  • 学习ES6 变量的解构赋值
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • k8s使用glusterfs实现动态持久化存储
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • $().each和$.each的区别
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (1)SpringCloud 整合Python
  • (8)STL算法之替换
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (强烈推荐)移动端音视频从零到上手(上)
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (区间dp) (经典例题) 石子合并
  • (十三)Flask之特殊装饰器详解
  • ***通过什么方式***网吧
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .Net Memory Profiler的使用举例
  • .NET/C# 使窗口永不获得焦点
  • .Net多线程总结
  • @ModelAttribute 注解