Hadoop Counter

1. Hadoop Counter计数器

在这个MapReduce Hadoop 计数器章节中,我们将学习Hadoop中MapReduce计数器的详细描述。

2. 什么是Hadoop MapReduce?

在我们开始使用Hadoop计数器之前,让我们先看看Hadoop MapReduce的概述。

MapReduce是提供数据处理的Hadoop的核心组件。 MapReduce通过将处理分为两个阶段进行工作;map阶段和reduce阶段。该映射是处理的第一阶段,我们指定所有复杂的逻辑/业务规则/代价高昂的代码,而Reduce阶段是处理的第二阶段,我们指定轻量级处理,如聚合/求和。

在Hadoop中,MapReduce Framework具有某些元素,例如Counters,Combiners和Partitioners,这些元素在提高数据处理性能方面起着关键作用。

现在我们来关注Hadoop MapReduce计数器。

3. 什么是Hadoop计数器?

Hadoop计数器提供了一种方法来衡量进度或map / reduce作业中发生的操作次数。 Hadoop MapReduce中的计数器是收集有关MapReduce作业统计信息的有用通道:用于质量控制或应用程序级别。它们对问题诊断也很有用。

计数器表示Hadoop全局计数器,由MapReduce框架或应用程序定义。

Hadoop计数器验证:

读取和写入正确的字节数。

正确的任务数量已启动并成功运行。

消耗的CPU和内存量适合作业和群集节点。

4. Hadoop MapReduce计数器的类型

基本上有两种类型的MapReduce计数器:

MapReduce中的内置计数器

用户定义的计数器/ MapReduce中的自定义计数器

4.1 MapReduce中的内置计数器

Hadoop为每个作业维护一些内置的Hadoop计数器,并且这些计数器报告各种度量标准,比如有字节数和记录数的计数器,这些计数器允许我们确认预期的输入量被消耗,并且预期的输出量是产生的。

Hadoop计数器被分成组,并且内置计数器有几组。每个组包含任务计数器(作为任务进度更新)或作业计数器(作为工作进度更新)。

Hadoop中的MapReduce任务计数器

Hadoop任务计数器在执行期间收集有关任务的特定信息(如读取和写入的记录数)。例如,MAP_INPUT_RECORDS计数器是计数每个map任务读取的输入记录的任务计数器。

Hadoop任务计数器由每个任务尝试维护并定期发送给主应用程序,以便它们可以全局聚合。

FileSystem计数器

Hadoop MapReduce中的Hadoop FileSystem计数器收集信息,如文件系统读取和写入的大量字节。以下是文件系统计数器的名称和说明:

FileSystem bytes read – 文件系统通过map和reduce任务读取的字节数。

FileSystem bytes written- 通过映射和reduce任务写入文件系统的字节数。

Hadoop中的FileInputFormat计数器

FileInputFormat Hadoop MapReduce中的计数器通过FileInputFormat收集map任务读取的大量字节信息。

MapReduce中的FileOutputFormat计数器

Hadoop MapReduce中的FileOutputFormat计数器收集由map任务(仅针对map作业)写入的大量字节信息或通过FileOutputFormat reduce任务。

MapReduce作业计数器

MapReduce作业计数器用于度量作业级别的统计信息,而不是在任务运行时更改的值。例如,TOTAL_LAUNCHED_MAPS,计算在作业过程中启动的mapper任务的数量(包括失败的任务)。主应用程序维护MapReduce作业计数器,因此这些Hadoop计数器不需要通过网络发送,不像所有其他计数器,包括用户定义的计数器。

4.2 Hadoop MapReduce中用户定义的计数器/定制计数器

除MapReduce内置计数器之外,MapReduce还允许用户代码定义一组计数器,然后在映射器或reducer中根据需要增加计数器。例如,在Java中,‘enum’用于定义计数器。

一MapReduce job可以定义任意数量的 enum 自定义计数器类,每一个都有任意数量的字段。枚举的名称是组名,枚举的字段是计数器名称。

Hadoop MapReduce中的动态计数器

Java枚举的字段是在编译时定义的,所以我们不能在运行时使用枚举在Hadoop MapReduce中创建新的计数器。为此,我们在Hadoop MapReduce中使用动态计数器。

5. MapReduce计数器:结论

总之,计数器检查是否读取或写入了正确数量的字节,正确的任务数量已启动并成功运行。因此,Hadoop维护内置的计数器和用户定义的计数器来测量在MapReduce作业中发生的进度。

Hadoop Counter

发表评论

电子邮件地址不会被公开。 必填项已用*标注

七十 四 − = 72