获取运行中Spark应用的Container日志
运行中Spark应用的Container日志分散在多个节点中,本章节用于说明如何快速获取Container日志。
场景说明
可以通过yarn logs命令获取运行在Yarn上的应用的日志,针对不同的场景,可以使用以下命令获取需要的日志:
- 获取application的完整日志:yarn logs --applicationId <appId> -out <outputDir>
例如:yarn logs --applicationId application_1574856994802_0016 -out /opt/test
执行结果:
- 若该application处于运行状态,则无法获取dead状态的container日志
- 若该application处于结束状态,则可以获取全部归档的container日志
- 获取指定Container日志:yarn logs -applicationId <appId> -containerId <containerId>
例如:yarn logs -applicationId application_1574856994802_0018 -containerId container_e01_1574856994802_0018_01_000003
执行结果:
- 若该application处于运行状态,则无法获取dead状态的Container日志
- 若该application处于结束状态,则可获取任意Container的日志
- 获取任意状态的Container日志:yarn logs -applicationId <appId> -containerId <containerId> -nodeAddress <nodeAddress>
例如:yarn logs -applicationId application_1574856994802_0019 -containerId container_e01_1574856994802_0019_01_000003 -nodeAddress 192-168-1-1:8041
执行结果:可获取任意Container的日志
此命令的参数中需要填入nodeAddress,可通过以下命令获取:
yarn node -list -all