首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >资源隔离、Apache纱线和独立的,关于在云中VM上运行

问资源隔离、Apache纱线和独立的,关于在云中VM上运行
EN

Stack Overflow用户
提问于 2017-03-03 13:20:12
回答 1查看 545关注 0票数 0

对于火花纱线和独立资源分配,例如,通过火花提交。例如,这限制了容器严格限制在所请求的内存中。这是通过使用CGroups ( linux内核特性)来完成的。但是对纱线和独立纱的研究是如何做到的呢?在这里,我特别好奇在与您可能不知道的用户共享的服务器上运行VM时,内存中的计算是如何保护的,例如,在云提供商的机器上运行时。

例如,在使用纱线时,纱线如何确保容器不受机器上其他容器的影响?那么,它如何确保在分配1GB内存时,机器上的其他人不使用这个GB?那么,如何确保没有内存泄漏和运行另一个应用程序的邪恶用户,甚至另一个VM也无法从内存中获取数据。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-04 08:41:30

编辑::

当通过Yarn管理资源时,Spark或任何其他应用程序都将成为Yarn确保该资源的责任。现在

纱线如何确保容器不受节点上其他容器的影响。

查看这里以获得详细的纱线内存分配说明。

​

纱线容器是JVM进程,因此在启动容器时,NM指定jvm-选择限制VM内存,然后在NodeManager中有一个名为NodeManager的组件,它监视进程的总内存使用情况,并在进程试图消耗更多资源时发出杀死信号。

是NM的ContainerMonitor,使用CGGroup来监视CPU和内存?

根据官方文档:CGroups在纱线中的应用 CGroups是一种机制,用于将一组任务及其所有未来的子任务聚集/划分为具有专门行为的层次化组。CGroups是Linux内核特性,并被合并到2.6.24版本的内核中。从纱线的角度来看,这使得容器的资源使用受到限制。一个很好的例子就是CPU的使用。没有CGroups,就很难限制容器CPU的使用。目前,CGroups只用于限制CPU的使用。

对于内存,它将出现在Hadoop 3上。

如何确保内存仅用于此应用程序?

对于分配给JVM进程的内存,JVM确保它从堆的内存异常中抛出,并且NM的容器监视器总共负责监视和销毁。

其他应用程序不能使用吗?

管理员确保。哈哈哈,不允许任何人登录到工作节点,只有少数管理员在我们的情况下。

现在开始计划,假设每个worker/datanode机器中都有64 GB RAM,没有人可以登录运行任何定制代码,因此只运行所需的服务(linux和yarn服务)。这是最大的10 GB,所以你决定给亚恩其余的48 GB。

现在,在启动容器时,Yarn将告诉NM为每个容器分配最大4GB (按照设置分配一个百分比作为实际JVM的堆),这将确保最小12个快乐容器。

然后,如果所有的作业要求每个集装箱1GB,纱线将能够填充48个容器。(谢谢@Samson Scharfrichter)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42579994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档