hadoop—mapreduce度量中的吞吐量是mb还是mb

vxbzzdmp  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(425)

在运行testdfsio之后,我得到了以下指标:

2019-04-30 09:50:35,790 INFO fs.TestDFSIO:             Date & time: Tue Apr 30 09:50:35 EDT 2019
2019-04-30 09:50:35,791 INFO fs.TestDFSIO:         Number of files: 100
2019-04-30 09:50:35,791 INFO fs.TestDFSIO:  Total MBytes processed: 10000
2019-04-30 09:50:35,791 INFO fs.TestDFSIO:       Throughput mb/sec: 376.9
2019-04-30 09:50:35,791 INFO fs.TestDFSIO:  Average IO rate mb/sec: 387.16
2019-04-30 09:50:35,791 INFO fs.TestDFSIO:   IO rate std deviation: 60.42
2019-04-30 09:50:35,791 INFO fs.TestDFSIO:      Test exec time sec: 115.21

Average IO rate mb/sec 兆字节还是兆字节?

fumotvh3

fumotvh31#

TestDFSIO 是一个有用的工具,但唯一可用的文档是在其源代码中。
通过查看 TestDFSIO.java 似乎吞吐量是用mebibytes/s表示的。
在源代码中可以看到如何计算troughput:

"      Throughput mb/sec: " + df.format(toMB(size) / msToSecs(time)),

功能 toMB() 字节数除以兆:

static float toMB(long bytes) {
    return ((float)bytes)/MEGA;
  }

也就是常数 0x100000L ,即整数1048576=1024*1024。
根据代码:

private static final long MEGA = ByteMultiple.MB.value();

enum ByteMultiple {
    B(1L),
    KB(0x400L),
    MB(0x100000L),
    GB(0x40000000L),
    TB(0x10000000000L);
   ...

因此吞吐量应该以兆字节/秒(mib/秒)而不是兆字节(mb)来表示。

相关问题