2017-07-18 83 views
1

在Hadoop2日志,是否有可能使用REST API来获取相同的结果:纱线得到休息API

yarn logs -applicationId <application ID> 
+0

这不工作?错误是什么? –

+0

没有错误。我只需要使用web请求而不是shell命令获得结果。为什么是-1? – Benjamin

回答

1

这是一个痛苦,我没有一个幸福的答案,但我可以将您指向一些资源。

  1. YARN CLI通过转到file system转储日志。如果你的应用程序可以访问HDFS,它可以做同样的事情(但这并不简单)。

  2. 或者,您可以使用其余调用http:///ws/v1/cluster/apps/{appid}获取应用程序主日志URL(但不是日志内容)。从这个URL中,你可以获取一个带有日志内容的HTML页面,这个页面将会被带有编码HTML实体的<pre>标签返回(&amp;等)。

  3. 如果您应用程序仍在运行,你可以使用容器的id从上面的URL中的原始日志:http:///ws/v1/node/containerlogs/{containerId}/stdout。这是作为YARN-649的一部分实施的。

YARN-1264看起来像你想要什么,但被关闭,重复上述JIRA。这不太准确,因为CLI和Web页面可以在容器完成后获取日志,但上面的REST服务不能。