有谁知道如何对Hadoop集群中运行的所有Java代码进行性能分析?
我将通过一个简单的示例进行解释。如果我们进行本地Java开发,则可以运行Yourkit来测量每个类的每个方法占用的CPU百分比。我们可以看到类A调用了方法X,这花费了整个应用程序90%的执行时间,然后修复了代码效率低下的问题。
但是,如果我们正在执行mapreduce工作并在集群中运行它,那么我也想看看是什么迟钝的东西:我们的map / reduce代码或框架本身。因此,我想拥有一个服务,该服务获取有关每个类/方法调用及其执行时间的信息,并将其收集到HDFS中,然后分析具有CPU消耗的方法调用树。
问题:有人知道这样的解决方案是否存在吗?
PS注意:我知道这样的事情会使群集速度变慢。而且我知道应该在测试集群上或与客户达成协议来完成此操作。现在的问题是“存在这样的东西吗?”。谢谢。