Hadoop--MapReduce计数器详解

计数器输出

运行完毕作业之后的计数器输出

内置计数器
hadoop为每个作业提供了若干内置计数器,用以描述各项指标。

文件系统计数器
所属类:org.apache.hadoop.mapreduce.FileSystemCounter

BYTES_READ:文件系统读取的字节数

BYTES_WRITTEN:文件系统写的字节数

FileInputFormat任务计数器
所属类:org.apache.hadoop.mapreduce.lib.input.FileInputFormatCounter

BYTES_READ:map任务通过FileInputFormat读取的字节数

FileOutputFormat任务计数器
BYTES_WRITTEN:由map任务或者reduce任务通过FileOutputFormat写的字节数

作业计数器
所属类:org.apache.hadoop.mapreduce.JobCounter

TOTAL_LAUNCHED_MAPS:启动的map任务数(推测执行启动的任务,以下也是)

TOTAL_LAUNCHED_REDUCES:启动的reduce任务数

TOTAL_LAUNCHED_UBERTASKS:启动的uber任务数

NUM_UBER_SUBMAPS:uber任务中的map任务数

NUM_UBER_SUBREDUCES:uber中reduce任务数

NUM_FAILED_MAPS:失败的map数

NUM_FAILED_REDUCES:失败的reduce数

NUM_FAILED_UBERTASKS:失败的uber任务数

DATA_LOCAL_MAPS:数据本地化的map数,即与输入数据在同一节点的map数

RACK_LOCAL_MAPS:与输入数据在同一机架上的map数,但不在同一节点

OTHER_LOCAL_MAPS:与输入数据不在同一机架上的map数

SLOTS_MILLIS_MAPS:map任务运行的总时间

SLOTS_MILLIS_REDUCES:reduce任务运行的总时间

MapReduce任务计数器
MAP_INPUT_REDORDS:map输入的记录数

MAP_SKIPPED_RECORDS:map跳过的记录数

MAP_INPUT_BYTES:map输入的字节数

SPLIT_RAW_BYTES:分片的原始字节数

MAP_OUTPUT_RECORDS:map输出的记录数

MAP_OUTPUT_BYTES:map输出的字节数

MAP_OUTPUT_MATERIALIZED_BYTES:map输出后写到磁盘上的字节数

COMBINER_INPUT_RECORDS:作业中combiner已经处理输入的记录数

COMBINER_OUPUT_REDORDS:作业中combiner已产生输出的记录数

REDUCE_INPUT_GROUPS:reduce输入的组,即每当reduce()被调用

REDUCE_INPUT_RECORDS:作业中reduce已经处理的输入记录个数

REDUCE_OUTPUT_RECORDS:reduce输出的记录数

REDUCE_SKIPPED_RECORDS:reduce跳过的组数

REDUCE_SHUFFLER_BYTES:shuffle中将map输出数据复制到reduce中的字节数

SPILLED_RECORDS:作业中map和reduce任务溢出到磁盘的记录数

CPU_MILLISECONDS:总计的cpu时间

PHYSICAL_MEMORY_BYTES:一个任务所用的物理内存字节数

VIRTUAL_MEMORY_BYTES:一个任务所使用的虚拟内存字节数

COMMITTED_HEAP_BYTES:JVM中总有效内存量

GC_TIME_MILLIS:GC运行时间毫秒数

SHUFFLED_MAPS:由shuffle传输的map数

FAILED_SHUFFLE:失败的shuffle数

MERGED_MAP_OUTPUTS:被合并的map输出数

自定义计数器
自定义计数器,计数器的值可以在mapper或reducer中增加,计数器由一个Java枚举(enum)类型定义
 

	enum Temperature{
		MISSING,
		TOTAL
	}

在map或者reduce中使用计数器

context.getCounter(Temperature.TOTAL).increment(1);

获取计数器

		Counters counters = job.getCounters();
		long total = counters.findCounter(MaxTemperature.Temperature.TOTAL).getValue();//获取自定义计数器
		long mpas = counters.findCounter(TaskCounter.MAP_INPUT_RECORDS).getValue();	//获取内置计数器

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: amples-2.7.1.jar wordcount /input /output 这是一个Hadoop命令,用于运行一个名为wordcount的MapReduce作业。hadoop-mapreduce-examples-2.7.1.jar是Hadoop MapReduce示例程序的JAR文件,包含了许多常见的MapReduce作业示例。/input是输入数据的路径,/output是输出结果的路径。 ### 回答2: hadoop jar hadoop-mapreduce-ex是一个Hadoop MapReduce应用程序,它是Hadoop的一个组件,用于处理大规模数据集。Hadoop MapReduce是一个开源的计算框架,通过分布式计算处理海量数据,具有高可靠性、高扩展性和高效性等特点。 hadoop-mapreduce-ex是一个扩展程序包,它提供了更多的MapReduce应用程序。该程序包包括了很多实用的工具和例子,可以帮助用户更快地实现MapReduce任务,提高了处理大数据的效率和质量。 在使用hadoop jar hadoop-mapreduce-ex时,需要使用hadoop jar命令。此命令的作用是将MapReduce程序打包成一个JAR文件,并提交给Hadoop集群进行处理。具体来说,hadoop jar命令有以下功能: 1. 提交MapReduce任务:使用该命令可以将作业提交到Hadoop集群中,启动MapReduce任务; 2. 配置MapReduce作业:通过命令行参数可以配置MapReduce作业的参数; 3. 监控MapReduce作业:通过该命令可以查看MapReduce作业的状态和进度; 4. 执行本地MapReduce任务:通过该命令可以在本地测试MapReduce程序的正确性和性能。 总之,hadoop jar hadoop-mapreduce-ex是一个非常有用的工具,它帮助用户更好地利用Hadoop MapReduce框架,处理并分析大数据集,提高业务效率和质量。 ### 回答3: Hadoop Jar Hadoop-MapReduce-Ex是Hadoop中的一个MapReduce拓展工具包,可以帮助用户更加方便地进行分布式计算任务。 Hadoop是一个开源的、由Apache开发的分布式计算框架,其最大的特点是能够在大规模的集群中高效地处理海量数据。而MapReduce作为Hadoop中的计算模式,可以将大数据集分解成独立小块,进行并行处理。 在Hadoop Jar Hadoop-MapReduce-Ex中,包含了许多有用的工具包和API,包括: 1. MapReduce算法库:提供了常见的MapReduce算法实现,例如排序、过滤、连接等,用户可以通过简单的配置和调用API方便地进行分布式计算任务。 2. 自定义InputFormat和OutputFormat:这个工具包提供了自定义输入和输出格式的API,用户可以将原始数据转换为Hadoop可处理的格式,或者将MapReduce结果转换为用户需要的格式。 3. MapReduce作业执行框架:这个框架提供了对MapReduce作业进行管理和监控的功能,用户可以方便地查看作业执行情况、调整作业配置等。 4. 分布式缓存:这个工具包提供了分布式缓存的API,可以将需要共享的数据存入缓存中,便于后续作业的调用和共享。 综上,Hadoop Jar Hadoop-MapReduce-Ex是一个非常有用的工具包,可以帮助用户快速实现分布式计算任务,提高计算效率和数据处理能力。但需要注意的是,使用该工具包需要有一定的编程经验和Hadoop的相关知识。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值