如何在 EMR Presto 服务上进行线程转储
Posted
技术标签:
【中文标题】如何在 EMR Presto 服务上进行线程转储【英文标题】:How to do a Thread Dump on EMR Presto service 【发布时间】:2021-01-31 12:54:56 【问题描述】:通过转到 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
用户运行吗?
是的,我想是的
【参考方案1】:
显然 Presto 服务以presto
OS 用户身份运行。
因此,您也需要以该用户的身份调用jstack
。
例如
sudo -u presto jstack -l <pid>
【讨论】:
这就是问题所在。我没有 sudo 访问权限,也没有 presto 用户密码。也找不到密码在 AWS 上的存储位置.. 我会假设服务帐户没有密码。 无密码不等于空密码。如果没有密码,您将无法交互登录。 太棒了..你完美地回答了我的问题。谢谢!以上是关于如何在 EMR Presto 服务上进行线程转储的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Amazon EMR 上将连接器添加到 presto
AWS EMR Presto 集群突然终止错误:作业流中的所有从属服务器都因 Spot 而终止