Man*_*r G 2 benchmarking hadoop hadoop2
我有一个11个节点的集群,9个是奴隶,2个是主人,与我之前的问题相同.我正在该集群上执行TestDFSIO基准测试,该集群使用CDH 5.8.0.
我从TestDFSIO结果得到以下输出.这是吞吐量吗?或者我是否需要从中计算吞吐量,例如文件数量乘以TestDFSIO结果通过其他方式?
请告诉我如何获得整个群集的吞吐量.
----- TestDFSIO ----- : write
Date & time: Mon Aug 29 07:28:01 MDT 2016
Number of files: 10000
Total MBytes processed: 8000000.0
Throughput mb/sec: 50.75090177850001
Average IO rate mb/sec: 85.83160400390625
IO rate std deviation: 82.41435666074283
Test exec time sec: 3149.755
Run Code Online (Sandbox Code Playgroud)
简而言之(粗略估计):
Total throughput [mb/sec] = total MBytes processed / test exec time
Run Code Online (Sandbox Code Playgroud)
所以~2.5GB在你的情况下.
或者,为了获得更准确的结果,找出群集中可用映射插槽的数量(来自纱线控制台的VC总数),并尝试以下方法:
Total throughput mb/sec = min(nrFiles, VCores total - 1) * Throughput mb/sec
Run Code Online (Sandbox Code Playgroud)
但我建议使用稍微不同的设置重复该测试,因为IO速率std偏差结果非常高(82.41435666074283).
您将文件数设置为10k.我假设所描述的集群没有可用的10k映射槽.现在,因为TestDFSIO每个文件运行一个映射,所以需要多个MapReduce wave才能完成测试.这是不必要的.此外,最后一波通常以比前一波更少的地图运行.同时运行较少的地图将产生更好的个人吞吐量,这将影响准确性.示例:
因此,最好将任务数量设置为更低的值.数据节点中的驱动程序总数是一个很好的起点.请看下面的图表:
我使用不同的nrFiles参数值多次运行TestDFSIO .你可以看到,在越过某一点(在这种情况下驱动器饱和)之后,没有太多事情发生.此群集的总吞吐量已达到2.3GB/s.因此,要回答您的问题,您可以获得正在运行的集群的总吞吐量:
hdfs yarn jar hadoop-mapreduce-client-jobclient.jar TestDFSIO -write -nrFiles N -size 10GB
Run Code Online (Sandbox Code Playgroud)
地点:
可以使用结果中的值计算总吞吐量,如下所示:
Total throughput [mb/sec] = nrFiles * Throughput mb/sec
Run Code Online (Sandbox Code Playgroud)
需要注意的事项:
归档时间: |
|
查看次数: |
1880 次 |
最近记录: |