hive - 有没有我们不想重用 tez 容器的场景?
问题描述
几天前,在我的一个项目中,我从 hive 和 tez 开始。在那段时间里,我遇到了这个属性tez.am.container.reuse.enabled
,许多网站都建议它保持真实。我理解这是由于:
- 将对新容器的请求限制为 RM
- 降低容器启动成本,从而节省时间
但我想不出我们希望禁用此属性的任何情况。我一直在网上搜索任何此类案例,但我无法找到任何此类案例。
谁能帮我这个?
解决方案
在性能方面,没有理由不重复使用容器, 本文的执行效率部分解释得很好,这就是为什么这个参数的默认值为.true
但是,我认为有些情况可以解释为什么这个功能仍然是可配置的;
- 您可能希望出于解决方法的目的禁用它。例如,此配置单元票证仍未解决,并且当
tez.am.container.reuse.enabled=false
有问题的查询正常工作时。如果我的生产案例很关键,而不是被完全阻止,我可能更喜欢在不重新使用容器的情况下运行我的工作。 - 该属性可能与其他一些属性发生冲突,并且根据您的优先级,您可能想放弃性能。例如在Configure Tez Container Reuse文档中,有一条警告说;
不要使用
tez.queue.name
配置参数,因为它将所有 Tez 作业设置为在一个特定队列上运行。
- 作为最后一项,我在这个文档上看到了另一个警告;
启用此参数可避免为每个任务重新分配容器资源的内存开销,从而提高性能。但是,如果任务包含内存泄漏或使用静态变量,请禁用此参数。
推荐阅读
- python - 逻辑回归 - numpy.float64
- c# - ClickOnce 安装失败,因为必须在 GAC 中安装 Microsoft.VisualStudio.Data.Core
- r - R:如何通过使用来自另一个行数较少的数据帧的信息来定位大型数据帧中的列
- restsharp - 强制 OAuth1 参数进入查询字符串?
- wolfram-mathematica - 如何将数字添加到 Wolfram mathematica 中的每个子集?
- svelte - 为什么这个反应变量在服务器端被触发两次?
- java - 在 Mirth 中创建 JWT 和解码/编码
- android - android,无法更改为 com.android.tools.build:gradle:4.2.1
- javascript - 当显示特定文本时,我需要隐藏一个元素
- android - 触摸/单击 ListView 中的项目时,有时会丢失按下状态