hadoop 基准测试的最佳实践是啥?
Posted
技术标签:
【中文标题】hadoop 基准测试的最佳实践是啥?【英文标题】:What are the best practices for hadoop benchmarking?hadoop 基准测试的最佳实践是什么? 【发布时间】:2016-09-27 05:56:57 【问题描述】:我正在使用 TestDFSIO 对 hadoop I/O 性能进行基准测试。 我正在使用的测试平台是一个包含 3 个数据节点和一个名称节点的小型虚拟集群。 每个 vm 会有 6-8 GB RAM 和 100-250 GB HDD。
我想知道两件事:
相对于我的设置,每个文件的文件数 (nrFIles) 和文件大小 (fileSize) 参数的值应该是多少,以便我们可以将我的小集群的结果与标准大小的集群相关联比如拥有 8-12 x 2-TB 的硬盘和 64 GB 的 RAM 以及更高的处理速度。这样做是否正确。
一般来说,对 hadoop 进行基准测试的最佳实践是什么?像: 推荐的集群规范是什么(datanodes、namenodes 的规格)、推荐的测试数据大小、测试台应该具有哪些配置/规格才能获得符合实际 hadoop 应用程序的结果
简单地说,我想了解正确的 hadoop 测试平台设置和正确的测试方法,以便我的结果与生产集群相关。
参考经过验证的工作会很有帮助。
另一个问题是 假设我有 -nrFiles 15 -fileSize 1GB 我发现地图任务的数量将等于 nrFiles 提到的数量 但是它们是如何分布在 3 个数据节点之间的呢? 15个地图任务我不清楚。是不是每个文件有 15 个文件会有一个映射器在处理它?
我没有找到任何关于 testDFSIO 工作原理的文档或说明。
【问题讨论】:
欢迎来到 SO,请在提问时更具体一点:您尝试过什么,您期望什么等。请参阅how to ask 我希望我的问题现在更清楚了。 【参考方案1】:您无法比较两个集群的结果。结果可能因节点上的映射器数量、复制因子、网络等而异。 集群规范将取决于您尝试将其用于什么。 如果您提供 -nrFiles 15 -fileSize 1000 ,则每 1GB 将创建 15 个文件。每个映射器将处理一个文件,因此将有 15 个映射任务。对于您的 3 节点集群,假设您在一个节点上只有 1 个映射器,那么将有 5 个波来写入完整数据。 请参阅以下链接以获取 testDFSIO 和其他基准测试工具:http://www.michael-noll.com/blog/2011/04/09/benchmarking-and-stress-testing-an-hadoop-cluster-with-terasort-testdfsio-nnbench-mrbench/
【讨论】:
谢谢你的回答,我也开始想同样的事情,我们不能比较两个集群,结果只属于我的集群,不能定义任何其他集群。以上是关于hadoop 基准测试的最佳实践是啥?的主要内容,如果未能解决你的问题,请参考以下文章
用 Java 衡量单线程复杂算法的最佳宏基准测试工具/框架是啥? [关闭]