如何在 EMR Presto 服务上进行线程转储

How to do a Thread Dump on EMR Presto service

通过转到 Amazon EMR 摘要页面,我只能看到有关如何使用 hadoop 用户连接到主节点的命令:

ssh -i ~/data-abc.pem hadoop@ip-10-90-28-13.ec2.internal

通过对 hadoop 用户执行 jps,我没有看到 presto jvm 进程。当我使用 ps -ef|grep presto 找出 java 进程 ID 并执行 jstack -l <PID> 时,它给我错误:

Operation not permitted

那么我怎样才能真正转储 presto 线程,而不是 hadoop 线程..

显然 Presto 服务是 运行 作为 presto OS 用户。 因此,您也需要以该用户身份调用 jstack

例如

sudo -u presto jstack -l <pid>