java – 如何进行Hadoop集群的性能分析
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何进行Hadoop集群的性能分析,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1508字,纯文字阅读大概需要3分钟。
内容图文
有谁知道如何对Hadoop集群中运行的所有Java代码进行性能分析?
我将在一个简单的例子中解释.如果我们进行本地java开发,我们可以运行Yourkit来测量每个类的每个方法占用的CPU百分比.我们可以看到类A调用方法X,这占整个应用程序的90%的执行时间,然后修复代码中的低效率.
但是如果我们正在做一个mapreduce工作并在集群中运行它,我也希望看到什么是缓慢的:我们的map / reduce代码,或者框架本身.所以,我想有一个服务,它获取有关每个类/方法调用的信息和执行时间的百分比,将其收集到HDFS中,然后分析具有CPU消耗的方法调用树.
Quetion:有人知道这样的解决方案是否存在?
附:
注意:我知道这样的事情会减慢集群的速度.我知道这样的事情应该在测试集群上或与客户达成协议.现在的问题是“存在这样的事情吗?”.谢谢.
解决方法:
我解决了这个问题.在这里http://ihorbobak.com/index.php/2015/08/05/cluster-profiling/您可以找到如何执行此操作的详细说明.
简要概述如何进行分析:
>在集群的每个主机上,我们放置了一个特殊的jar文件(一个StatsD JVM Profiler的mod)和一个javaagent,它将嵌入在该机器上运行的每个JVM进程中.
>“javaagent”是一段代码,用于检测JVM上运行的程序. Profiler的javaagent收集stacktraces
从JVM进程每秒100次,并将它们发送到专用
运行名为InfluxDB的NoSQL数据库的主机(https://influxdb.com).
>在我们运行分布式应用程序之后,在收集堆栈跟踪之后,我们在此数据库上运行一组脚本来提取数据
关于类/方法的执行以及使用Flame可视化这些数据
图形.
Flame Graphs是由Brendann Gregg http://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html发明的.Brendan有一段非常好的视频解释了它是如何工作的:https://www.youtube.com/watch?v=nZfNehCzGdw.本作者还有一本非常好的书“系统性能:企业和云”,我强烈建议您阅读.
内容总结
以上是互联网集市为您收集整理的java – 如何进行Hadoop集群的性能分析全部内容,希望文章能够帮你解决java – 如何进行Hadoop集群的性能分析所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。