首页 > 解决方案 > 有没有我们不想重用 tez 容器的场景?

问题描述

几天前,在我的一个项目中,我从 hive 和 tez 开始。在那段时间里,我遇到了这个属性tez.am.container.reuse.enabled,许多网站都建议它保持真实。我理解这是由于:

但我想不出我们希望禁用此属性的任何情况。我一直在网上搜索任何此类案例,但我无法找到任何此类案例。

谁能帮我这个?

标签: hiveapache-tez

解决方案


在性能方面,没有理由不重复使用容器, 本文的执行效率部分解释得很好,这就是为什么这个参数的默认值为.true

但是,我认为有些情况可以解释为什么这个功能仍然是可配置的;

  • 您可能希望出于解决方法的目的禁用它。例如,配置单元票证仍未解决,并且当tez.am.container.reuse.enabled=false有问题的查询正常工作时。如果我的生产案例很关键,而不是被完全阻止,我可能更喜欢在不重新使用容器的情况下运行我的工作。
  • 该属性可能与其他一些属性发生冲突,并且根据您的优先级,您可能想放弃性能。例如在Configure Tez Container Reuse文档中,有一条警告说;

不要使用tez.queue.name配置参数,因为它将所有 Tez 作业设置为在一个特定队列上运行。

  • 作为最后一项,我在这个文档上看到了另一个警告;

启用此参数可避免为每个任务重新分配容器资源的内存开销,从而提高性能。但是,如果任务包含内存泄漏或使用静态变量,请禁用此参数。


推荐阅读