hadoop - 如何检查映射器的输入大小(以字节为单位)?

标签 hadoop mapreduce

我注意到在 500 个映射器中,完成时间几乎相差 3 倍。

当我检查日志(通过 JobTracker Web 界面)时,我发现差异主要在于第一次溢出时间(“Finished spill 0”)。

这似乎意味着每个映射器的输入文件大小差异并不是真正的因素。可能是不同节点之间的性能差异?欢迎任何见解/评论!

最佳答案

这实际上取决于您的制图员正在做什么来调查差异。您必须根据 map 作业功能以及涉及的 I/O 和处理进行调查。

有三个问题会导致映射器出现不同的性能差异。

  1. 本地化但依赖于节点的文件 I/O。不同的节点类型可以表现出不同的性能特征。
  2. 网络 I/O:如果您的映射器正在从其他地方获取数据(例如:从数据库中获取数据的 Sqoop 作业),那么这是一个更重要的问题,并且通常会随着映射器在不同时间以不同网络特征执行而有所不同。
  3. 计算密集型作业(映射器性能):通常应该对所有映射器产生类似的影响,但仍然依赖于节点。

此外,如果您从命令行执行作业,您应该会看到类似于此的输出(对于网络 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 集群特征:

  1. 测试DFSIO
  2. MRBench

关于hadoop - 如何检查映射器的输入大小(以字节为单位)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11124381/

相关文章:

hadoop - 为什么主机中的时钟偏移错误会反复出现 : cloudera

hadoop - 商业智能中的 Spark

java - 将图像存储到HDFS,Hive中

hadoop - 并行 hadoop 作业不会通过

hadoop - Hadoop中如何将Mapper的值上报给Driver程序?

sql - HIVe 创建不包含重复项的 Json 数组

hadoop - HDFS的位置感知

hadoop - 我们可以将s3存储桶的输入路径用于映射器和化简器以运行MR作业吗?

hadoop - Apache Pig弃用错误

hadoop - yarn 工作内存利用率