我注意到500个映射器中的完成时间差不多是3倍。
当我检查日志时(通过JobTracker网络界面),我发现差异主要在第一次溢出时间(“完成溢出0”)。
这似乎意味着每个映射器的输入文件大小差异并不是真正的因素。可能是不同节点之间的性能差异?任何见解/评论都会受到欢迎!
答案 0 :(得分:1)
这实际上取决于你的地图制作者正在做些什么来调查差异。您必须根据地图作业功能以及涉及的I / O和处理进行调查。
有三个问题会导致映射器出现不同的性能差异。
此外,如果从命令行执行作业,您应该看到与此类似的输出(对于网络I / O)
mapred.JobClient: SLOTS_MILLIS_MAPS=2958530
mapred.JobClient: Total time spent by all reduces waiting after reserving slots (ms)=0
mapred.JobClient: Total time spent by all maps waiting after reserving slots (ms)=0
mapred.JobClient: Launched map tasks=1
mapred.JobClient: SLOTS_MILLIS_REDUCES=0
mapred.JobClient: FileSystemCounters
mapred.JobClient: HDFS_BYTES_READ=87
mapred.JobClient: FILE_BYTES_WRITTEN=58294
mapred.JobClient: HDFS_BYTES_WRITTEN=248301
mapred.JobClient: Map-Reduce Framework
mapred.JobClient: Map input records=1679
mapred.JobClient: Physical memory (bytes) snapshot=267583488
mapred.JobClient: Spilled Records=0
mapred.JobClient: CPU time spent (ms)=2580
mapred.JobClient: Total committed heap usage (bytes)=158334976
mapred.JobClient: Virtual memory (bytes) snapshot=927236096
mapred.JobClient: Map output records=1679
mapred.JobClient: SPLIT_RAW_BYTES=87
mapreduce.ImportJobBase: Transferred 242.4814 KB in 2,964.2976 seconds (83.7639 bytes/sec)
mapreduce.ImportJobBase: Retrieved 1679 records.
您可以从处理和写入文件的数据以及传输时间中看到。
[编辑:]
有可用的基准测试可以帮助您查看Hadoop集群特征: