Yarn使用容器来管理应用程序的资源。例如,容器定义了为应用程序分配的内存/CPU核心。这是如何与C++应用程序配合使用的?给定一个具有某些资源的容器,如512MB、2个CPU,C++应用程序如何服从它或被包含?
对于java应用程序,资源包含是通过限制java应用程序jvm的资源来完成的吗?
Yarn通过监视子进程并在超过允许的限制时终止它来限制容器的内存使用。
当您使用Yarn生成C++应用程序时,NodeManager会启动一个子进程并开始监视该进程。如果查看NodeManger的本地日志,您会看到很多关于子进程内存使用情况的日志。如果子进程超过了允许的限制(默认情况下,容器可以使用其声称的2倍内存量,这是可以配置的),则会终止进程。这同样适用于C++应用程序和Java应用程序。