此链接Profling Hive CLI提供了有关如何使用Java任务控制分析Hive CLI的说明。步骤是
-
创建一个目录来保存探查器输出:
mkdir $HOME/profiles
-
创建一个别名,以便更容易重复:
alias debug='HADOOP_CLIENT_OPTS="-XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=defaultrecording=true,dumponexit=true,dumponexitpath=$HOME/profiles/"'
-
运行一些 hadoop 客户端命令来分析例如,要分析 Hive CLI 启动(以便使用 -e 'exit;'(,以及 TRACE 输出:
debug hive --hiveconf hive.root.logger=TRACE,console -e 'exit;' 2&>&1 | tee $HOME/profiles/hive_trace.out
-
存档并收集步骤 1 中使用的目录
tar czvf profile_data.tgz $HOME/profiles
我的问题是
a( 在第 4 步之后,如何使用 java 任务控制来使用收集的指标
b( 当我使用 2 和 3 中的配置设置启动 hive 时。为什么 Hive 在 java 任务控制台中不可见?
c( 有没有更好的方法来分析Hive的组件,如Hive-exec,Hive-metastore?
a( 现在,您应该在 $HOME/profile 中为 *.jfr 文件提供一个编号,这些文件可以在 JMC 中打开和分析。这是有关如何执行此操作的官方文档的链接:https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr005.html(如果您在线搜索,则有更多相关信息和视频(
b( 你如何启动 Hive,它是否与你运行 JMC 的用户相同?你能看到系统上的其他 JVM 吗?如果你运行jps或jcmd,你能看到那里列出的Hive进程吗?