apache-spark - Apache Yarn - 分配比物理内存或 RAM 更多的内存
问题描述
我正在考虑更改yarn.nodemanager.resource.memory-mb
为高于我机器上可用 RAM 的值。快速搜索发现没有多少人这样做。
许多在 yarn 上长期存在的应用程序,必然会有一个 jvm 堆空间分配,其中一些内存被更频繁地使用,而另一些则很少使用。在这种情况下,将一些不经常使用的内存部分交换到磁盘并将可用的物理内存重新分配给其他需要它的应用程序,对于此类应用程序来说是非常有意义的。
鉴于上述背景,有人可以证实我的推理或提供另一种观点吗?另外,您能否澄清一下yarn.nodemanager.vmem-pmem-ratio
在上述情况下该参数将如何工作?
解决方案
这不是一个好主意。尝试使用比可用内存更多的内存最终会使您的节点管理器主机崩溃。
已经有一个称为机会容器的功能,它使用 NM 未使用的备用内存并向这些主机添加更多容器。参考:
YARN-1011 [Umbrella] 根据当前分配的容器的利用率安排容器
此外,如果您等不及 YARN-1011,Pepperdata 有一个产品可以做几乎相同的事情。
https://www.pepperdata.com/products/capacity-optimizer/
至于yarn.nodemanager.vmem-pmem-ratio
,不要启用它,因为它不再推荐了。
推荐阅读
- android - Mapbox 不返回语音指令,导致 Android 应用崩溃
- java - 如何在 docker 测试容器中添加运行参数
- php - 如何自动升级图像位置
- c++ - 什么是 C++ 和 VScode 中的#pragma 区域?
- sql - 链式 CTE 未按顺序执行?PostgreSQL
- php - 如果未设置价格,Woocommerce 删除价格
- reactjs - 使用 gatsby 和 gatsby-plugin-scroll-reveal 实现滚动动画
- javascript - 通过路线传递道具
- javascript - 调用 axios 时出现打字稿错误 - 没有重载匹配此调用
- r - 在R中使用dplyr查找日期范围内的最大值