我是hadoop环境中的新手。我已经设置了2个节点集群hadoop。然后我运行示例mapreduce应用程序。 (实际上是wordcount)。然后我得到这样的输出
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
我得到的每一个数据都有解释吗?特别是,
答案 0 :(得分:4)
Mapreduce framwork在作业提交执行时维护计数器。这些计数器向用户显示,以便了解作业统计数据并查看基准和性能分析。你的工作输出显示了一些计数器。关于计数器的权威指南第8章有一个很好的解释,我建议你检查一次。
要解释您要求的项目,
1)所有地图花费的总时间 - 以毫秒为单位运行地图任务所花费的总时间。包括任务 那些是以推测性方式开始的(推测意味着在等待指定的时间后运行失败或缓慢的工作,用哀叹的话来说,推测工作意味着重新运行任何特定的地图任务)。
2)所有减少所花费的总时间 - 以毫秒为单位运行减少任务所花费的总时间。
3)CPU时间 - 任务的累计CPU时间(以毫秒为单位)
4)物理内存 - 任务以字节为单位使用的物理内存,此处的内存也计算用于溢出的总内存。
5)虚拟内存总量 - 任务使用的虚拟内存(以字节为单位)
6)提交的总堆使用量 - JVM中可用的内存总量(以字节为单位)
希望这会有所帮助。计数器的类别及其详细信息在权威指南中得到了很好的说明,如果您需要任何其他信息,请告知我们。
谢谢。
RAM是处理作业时使用的主要内存。数据将被带到RAM并处理作业,将其保存在RAM中。但是,数据可能会大于分配的RAM大小。在这种情况下,操作系统将数据保存在磁盘中并将其与RAM交换,以允许更小的RAM足以用于内存较高的文件。例如:RAM为64MB,假设文件大小为128 MB,那么64 MB将首先保存在RAM中,其他64位保存在DISK中,然后交换它。虽然它不会保持64MB和64 MB,但在内部它分为段/页。
我刚举了一个例子来理解。虚拟内存是一种通过使用页面并使用DISK和RAM交换来处理大于RAM的文件的概念。因此,对于上述情况,它实际上使用来自磁盘的64 MB作为RAM,因此它被称为虚拟内存。
希望你理解。如果您对答案感到满意,请接受答案。如果您有任何疑问,请告诉我。
堆叠用于对象存储的JVM内存,该内存是在命令行中使用JVM_OPTS设置的。通常,所有Java程序都需要具有这些设置。