[alibaba/arthas]spark作业中无法通过trace、watch、stack跟踪到hive类

2025-11-10 623 views
8
环境信息 arthas-boot.jar 或者 as.sh 的版本: 3.4.5 Arthas 版本: 3.4.5 操作系统版本: macos 11.1 目标进程的JVM版本: 1.8.0_151 执行arthas-boot的版本: 3.4.5 重现问题的步骤 编写spark访问hive的样例case 运行样例case 使用arthas监听trace org.apache.hadoop.hive.metastore.HiveMetaStoreClient * 期望的结果

返回调用HiveMetaStoreClient的方法耗时

实际运行的结果

没有任何结果返回,但实际是有调用这个类的。

[arthas@11391]$ trace org.apache.hadoop.hive.metastore.HiveMetaStoreClient *
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 208) cost in 1104 ms, listenerId: 1
session (85cf37dd-90c9-4cb5-abc4-262c1ab3d92d) is closed because server is going to shutdown.

回答

2

没结果就是没调用,检查进程是不是搞错了。流计算的进程很容易搞错。

2

确定是有调用的,只要访问hive,那是必经的类,而且开debug也能在hive类里打断点。

1

session (85cf37dd-90c9-4cb5-abc4-262c1ab3d92d) is closed because server is going to shutdown.

这个表示有人执行了 stop命令,或者进程本身退出了。 基本不可能出现trace之后,有调用而没结果的。检查 ~/logs/arthas/arthas.log 里有没有日志。

8

spark是分布式的,是不是没有在对应的机器上执行?

5

spark是分布式的,是不是没有在对应的机器上执行?

谢谢你的关注。spark访问hive是在driver进程的,因此不会存在没找到对应机器的问题。

4

@stczwd 试下最新版本arthas。