当作业已提交执行时,Mapreduce 框架会维护计数器。这些计数器向用户显示,用于了解作业统计数据并查看基准和性能分析。您的作业输出已向您显示了一些计数器。关于计数器的权威指南第8章有很好的解释,我建议你检查一次。
为了解释您要求的物品,
1) 所有映射所花费的总时间 - 运行映射任务所花费的总时间(以毫秒为单位)。包括任务
推测性启动(推测性意味着在等待指定时间后运行失败或缓慢的作业,用悲哀的术语来说,推测性作业意味着重新运行任何特定的映射任务)。
2) 所有reduce 花费的总时间- 运行reduce 任务所花费的总时间(以毫秒为单位)。
3) CPU 时间 - 任务的累积 CPU 时间(以毫秒为单位)
4) 物理内存 - 任务使用的物理内存(以字节为单位),这里的内存还计算用于溢出的总内存。
5) 总虚拟内存 - 任务使用的虚拟内存(以字节为单位)
6) 已提交堆使用总量 - JVM 中可用的内存总量(以字节为单位)
希望这可以帮助。权威指南中清楚地给出了计数器的类别及其详细信息,如果您需要任何其他信息,请告诉我。
谢谢。
评论后补充详情——
RAM 是处理作业时使用的主内存。数据将被带到 RAM 中,作业得到处理后将其保留在 RAM 中。但是,数据可能大于分配的 RAM 大小。在这种情况下,操作系统将数据保存在磁盘中,并将其与 RAM 交换,以允许较少的 RAM 足以容纳内存较高的文件。例如:RAM是64MB,假设文件大小是128MB,那么64MB将首先保存在RAM中,其余64MB保存在DISK中,并交换它。虽然它不会将其保留为 64MB 和 64 MB,但在内部它会分为段/页。
我只是举了一个例子来理解。虚拟内存是一个通过使用页面并与磁盘和 RAM 交换来处理大于 RAM 的文件的概念。因此,对于上述情况,它实际上使用磁盘中的 64 MB 作为 RAM,因此称为虚拟内存。
希望你能理解。如果您对答案满意,请接受它作为答案。如果您有任何疑问,请告诉我。
堆用于对象存储的 JVM 内存,在命令行中使用 JVM_OPTS 设置。通常所有的java程序都需要有这些设置。