在客户端提交appContext之后,是否可以从YARN客户端获取各种容器ID和主机名?我想这意味着在容器分配之后,信息可以传回客户端?来自客户端的YARN ContainerIDs
如果这不可行,RM Web Interface是否提供此信息?
在客户端提交appContext之后,是否可以从YARN客户端获取各种容器ID和主机名?我想这意味着在容器分配之后,信息可以传回客户端?来自客户端的YARN ContainerIDs
如果这不可行,RM Web Interface是否提供此信息?
比较难看,但可以通过一系列的URL请求到ResourceManager,节点管理器来完成,以及各种ContainerLog网址:
# Resource Manager Info for Given Application
curl http://RM:PORT/ws/v1/cluster/apps/<app_id>
amHostHttpAddress = data['app']['amHostHttpAddress']
# List containers with id, nodeId, containerLogsLink, etc
curl http://<amHostHttpAddress>/ws/v1/node/containers
# stdout/stderr for a specific container
curl http://<containerLogsLink>/stdout/?start=0"
curl http://<containerLogsLink>/stderr/?start=0"
这种方法可行,但大概应当纱JAVA这样做的更清洁的方式API
YARN CLI可以从应用程序尝试ID中获取容器列表。您可以按照以下步骤获取容器列表。
第1步:从应用程序ID
从纱线应用程序ID应用程序尝试的列表,你可以得到应用程序尝试的列表,使用以下命令:
yarn applicationattempt -list <Application ID>
此命令的描述如下:
-list <Application ID> List application attempts for application.
例如
yarn applicationattempt -list application_1452267331813_0009
第2步:使用应用程序尝试ID
你的应用程序尝试列表后,为每个应用程序的尝试,你可以得到的容器列表获取容器,使用下面的命令:
yarn container -list <Application Attempt ID>
此命令的描述如下:
-list <Application Attempt ID> List containers for application attempt.
对于例如为:
yarn container -list appattempt_1452267331813_0009_000001