3

我正在使用 java 7 的飞行记录器来转储 Hadoop 任务的执行。为此,我使用此配置选项:

<property>
    <name>mapred.child.java.opts</name>
    <value>-XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=defaultrecording=true,dumponexit=true,dumponexitpath=/root/recordings</value>
</property>

结果是许多 .jfr 文件(如预期的那样)。我可以毫无问题地在 Java Mission Control 中打开其中的任何一个。但是,如果我尝试使用以下方法将它们连接在一起:

java oracle.jrockit.jfr.tools.ConCatRepository [directory] [-o output_filename] 

(取自:http ://docs.oracle.com/cd/E15289_01/doc.40/e15070.pdf:http : //docs.oracle.com/cd/E15289_01/doc.40/e15070.pdf

我无法在 Java Mission Control 中打开结果,出现错误“从 condensed.jfr 加载事件时遇到问题。无法从 condensed.jfr 加载事件”。

我究竟做错了什么?

4

1 回答 1

0

听起来像一个错误,可能是该工具以非时间顺序连接文件,如果 JVM 每秒发出十个(或更多)文件,即名为 2014_01_15_20_03_14_35880_10.jfr 的文件将出现在 2014_01_15_20_03_14_35880_2.jfr 之前,这可能会造成混淆任务控制解析器。

您可以尝试以正确的顺序自行连接文件。

于 2014-01-15T19:07:16.470 回答