This class implements {@link NMClient}. All the APIs are blocking.
By default, this client stops all the running containers that are started by it when it stops. It can be disabled via {@link #cleanupRunningContainersOnStop}, in which case containers will continue to run even after this client is stopped and till the application runs at which point ResourceManager will forcefully kill them.
Note that the blocking APIs ensure the RPC calls to NodeManager
are executed immediately, and the responses are received before these APIs return. However, when {@link #startContainer} or {@link #stopContainer}returns, NodeManager
may still need some time to either start or stop the container because of its asynchronous implementation. Therefore, {@link #getContainerStatus} is likely to return a transit container statusif it is executed immediately after {@link #startContainer} or{@link #stopContainer}.