java飞行记录器连接错误

时间:2014-01-14 21:28:53

标签: java hadoop profiling jfr

我正在使用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.pdfhttp://docs.oracle.com/cd/E15289_01/doc.40/e15070.pdf

我无法在Java Mission Control中打开结果,并显示错误“从condensed.jfr加载事件遇到了问题。无法加载来自condensed.jfr的事件”。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

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

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