Yarn使用容器来管理应用程序的资源。例如,容器定义应用程序的已分配内存/ CPU核心。这如何与C ++应用程序一起使用?给定一个带有一些资源的容器,比如512MB,2个CPU,C ++应用程序如何服从它或被包含?
对于java应用程序,是否通过限制java应用程序的jvm资源来完成资源包含?
答案 0 :(得分:0)
Yarn通过监视子进程来限制容器的内存使用量,并在超过允许的限制时将其终止。
当您使用Yarn生成C ++应用程序时,NodeManager启动子进程并开始监视进程。如果查看NodeManger的本地日志,您会看到很多关于子进程的内存使用情况的日志。如果子进程超出允许的限制(默认情况下,容器可以使用它声明的内存量(可以配置)的2倍),则会终止进程。这同样适用于C ++应用程序和Java应用程序。
答案 1 :(得分:0)
Hadoop使用Linux CGroup来限制容器的资源使用。从2.7.2版开始,YARN容器仅提供CPU利用率的限制。 Reference