hadoop mapreduce控制台输出说明

1hdlvixo  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(558)

我是hadoop环境的新手。我已经建立了2节点集群hadoop。然后运行示例mapreduce应用程序(实际上是字数)。然后我得到这样的输出

File System Counters
    FILE: Number of bytes read=492
    FILE: Number of bytes written=6463014
    FILE: Number of read operations=0
    FILE: Number of large read operations=0
    FILE: Number of write operations=0
    HDFS: Number of bytes read=71012
    HDFS: Number of bytes written=195
    HDFS: Number of read operations=404
    HDFS: Number of large read operations=0
    HDFS: Number of write operations=2
Job Counters 
    Launched map tasks=80
    Launched reduce tasks=1
    Data-local map tasks=80
    Total time spent by all maps in occupied slots (ms)=429151
    Total time spent by all reduces in occupied slots (ms)=72374
Map-Reduce Framework
    Map input records=80
    Map output records=8
    Map output bytes=470
    Map output materialized bytes=966
    Input split bytes=11040
    Combine input records=0
    Combine output records=0
    Reduce input groups=1
    Reduce shuffle bytes=966
    Reduce input records=8
    Reduce output records=5
    Spilled Records=16
    Shuffled Maps =80
    Failed Shuffles=0
    Merged Map outputs=80
    GC time elapsed (ms)=5033
    CPU time spent (ms)=59310
    Physical memory (bytes) snapshot=18515763200
    Virtual memory (bytes) snapshot=169808543744
    Total committed heap usage (bytes)=14363394048
Shuffle Errors
    BAD_ID=0
    CONNECTION=0
    IO_ERROR=0
    WRONG_LENGTH=0
    WRONG_MAP=0
    WRONG_REDUCE=0
File Input Format Counters 
    Bytes Read=29603
File Output Format Counters 
    Bytes Written=195

我得到的每一个数据都有什么解释吗?尤其是,
所有Map在已占用插槽中花费的总时间(毫秒)
所有服务器在占用的插槽中花费的总时间(毫秒)
cpu时间(毫秒)
物理内存(字节)
虚拟内存(字节)快照
提交的堆使用总量(字节)

9njqaruj

9njqaruj1#

mapreduce framwork在提交作业以供执行时维护计数器。这些计数器显示给用户,以便了解作业统计信息,并查看基准测试和性能分析。作业输出显示了一些计数器。在权威指南第8章中有一个关于计数器的很好的解释,我建议你检查一下。
解释一下你要的东西,
1) total time Speed by all maps—运行Map任务所用的总时间(毫秒)。包括推测性启动的任务(推测性意味着在等待指定时间后运行失败或缓慢的作业,遗憾的是,推测性作业意味着重新运行任何特定的Map任务)。
2) total time Speed by all reduces—运行reduce任务所用的总时间(以毫秒为单位)。
3) cpu时间—任务的累计cpu时间(以毫秒为单位)
4) 物理内存—任务使用的物理内存(以字节为单位),这里的内存也计算用于溢出的总内存。
5) 总虚拟内存—任务正在使用的虚拟内存(以字节为单位)
6) total committed heap usage—jvm中可用的内存总量(字节)
希望这有帮助。柜台的分类和详细信息都在权威指南中清楚地给出,如果您需要任何其他信息,请告诉我。
谢谢您。

评论后的额外细节--

ram是处理作业时使用的主内存。数据将被带到ram中,作业将被处理并保存在ram中。但是,数据可能比分配的ram大。在这种情况下,操作系统将数据保存在磁盘中,并将其交换到ram中或从ram中交换出来,这样即使是较小的ram也足以容纳内存更高的文件。例如:ram是64mb,假设文件大小是128mb,那么64mb将首先保存在ram中,其他64将保存在磁盘中,然后交换它。虽然它不会保持64mb和64mb的大小,但在内部它会划分为段/页。
我只是举个例子来理解。虚拟内存是一个概念,通过使用页面并与磁盘和ram交换来处理比ram大的文件。所以在上面的例子中,它实际上使用磁盘上的64MB作为ram,所以称为虚拟内存。
希望你能理解。如果你对答案满意,请接受它作为答案。如果你有任何问题,请告诉我。
堆用于对象存储的jvm内存,该内存是使用命令行中的jvm选项设置的。通常所有java程序都需要这些设置。

相关问题