是否有任何工具可以生成具有预定义的用户请求增加(运行相同的 map-reduce 作业)并监控负载下 Hadoop 集群的某些特定指标的自动化场景?我正在寻找类似 LoadRunner 的东西但免费/开源工具。
该工具不一定要有很酷的用户界面,而是能够记录和保存场景,其中包括供多个用户使用的加速和会合点(等到其他用户到达某个点并同时执行某些操作)。
我要测试的 Hadoop 发行版是最新的 MapR。
搜索互联网并没有为 HP LoadRunner 带来任何好的免费替代品。如果您有 Hadoop(或特别是 MapR)负载测试的经验,请分享您使用的工具。
最佳答案
您将看到的每个解决方案在总价格中都包含工具商数和劳动商数。有许多开源工具可以将工具成本降至零,但人工费用如此之高,以至于您交付的总成本将高于购买人工费用较低的商业工具。此外,许多人将性能测试工具视为单独的负载生成,而忽略了监控数据的自动收集和结果分析,您可以同时将响应时间的增加与相关资源的使用联系起来。当您使用解耦工具时,这是一个费力的过程,会变得更长。
正如您提到的 LoadRunner,当您获得一个工具时,您应该将该工具中可用的内容与您提供的任何内容进行比较。例如, LoadRunner 中提供了 Java、C、C++ 和 VB 接口(interface)。您将找到一种方法来使用您的 map 并减少基础设施。比较集成监控功能( native /SNMP/终端用户与命令行...)以及分析和报告。在不存在能力的地方,您将需要构建能力或从其他地方获取能力。
您还提出了 Rendezvous 的概念。在任何工具中应用它时都要小心。除非你的人口非常多,否则同一时间代码/ Action 的同一区域同时发生碰撞的几率会变得非常小。人类是困惑的工具,彼此独立到达和离开。另一方面,如果你正在自动化一个基于时钟滴答的代理,那么集合点就更有意义了。通过 IP 地址查看您的作业提交日志可以提供一个客观模型,了解有多少同时提交(会合)与有多少同时运行。我审计了很多测试,发现集合点是工具中最常被滥用的项目,导致数以千计的工程时间浪费在追逐自然使用中永远不会发生的工程幽灵上。
关于performance - 如何做Hadoop集群的负载和性能测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34283888/