基准测试Hadoop - 为什么读取需要与复制写入一样长?

时间:2014-10-29 15:57:13

标签: hadoop hdfs benchmarking

我有一个16节点集群,复制因子为2,使用Hadoop 1.0.4。我已将map和reduce任务的最大数量设置为1,并且我已禁用推测任务执行。

我正在运行TestDFSIO基准测试来创建工作负载,从而均匀地为集群上的每个节点负担。我执行以下序列:

  1. TestDFSIO写入48个2GB文件
  2. 删除群集中每个节点上的缓存,以防止从内存中读取数据
  3. TestDFSIO读取2GB的48个文件。
  4. 在每个工作负载中,16节点集群中的每个节点理想情况下应该看到3个数据本地映射任务。

    由于写入是2次复制,我希望写入工作量大约是读取工作负载的两倍(减去与mapreduce相关的任何预热和冷却)。相反,写入和读取需要相同的时间量。

    一些线索:

    1. 总是"分裂"当启动作业时不覆盖所有节点,因此有一个locality_wait_factor< 1(通常为.75-.9)。
    2. 当地图看起来都是数据本地时,有一些机架本地地图(我假设这是#2的结果)。
    3. 为什么在这种情况下读取的时间和写入一样长?

      当我一次只对一个地图进行TestDFSIO写入时,为什么会出现机架本地地图任务?

      假设它会改善我的结果,我该如何确保更多的数据位置?

0 个答案:

没有答案