赞
踩
优化Hive on Tez查询永远不能以一种万能的方法来完成。查询的性能取决于数据的大小、文件类型、查询设计和查询模式。在性能测试期间,要评估和验证配置参数和任何 SQL 修改。建议在工作负载的性能测试期间一次进行一项更改,并且最好在生产环境中使用它们之前评估调整更改在您的开发和 QA 环境中的影响。Cloudera WXM可以帮助评估性能测试期间查询更改的好处。
在从 CDH 发行版到 CDP 私有云的多次迁移中观察到,与 MR 或 Spark 等较旧的执行引擎相比,Hive on Tez查询往往执行得更慢。这通常是由不同执行引擎之间的开箱即用的调整行为的差异引起的。此外,用户可能已经完成了对旧版分发的调整,这不会自动反映在 Hive on Tez转换中。对于从 HDP 发行版升级的用户,此讨论还有助于查看和验证是否正确配置了属性以实现 CDP 中的性能。
以下步骤可帮助您确定可能会降低性能的重点领域。 第 1 步:核实和验证 YARN 容量调度器的配置。由于错误配置的队列配置(用户可用资源的任意上限)可能会影响查询性能。验证用户限制因子、最小用户限制百分比和最大容量。(请参阅YARN – 容量调度器博客以了解这些配置设置。) 第 2 步:查看 Hive on Tez和 Hive 的任何安全阀(Hive 和 HiveServer2 配置的非默认值)的相关性。删除任何遗留和过时的属性。 第 3 步:识别缓慢的区域,例如 map 任务、reduce 任务和Join。
在更改任何配置之前,您必须了解 Tez 内部工作的机制。例如,这包括了解 Tez 如何确定正确的Map和Reduce数量。查看 Tez 架构设计以及有关初始任务并行性和自动减少并行性如何工作的详细信息将帮助您优化查询性能。
Tez 使用作业的初始输入数据来确定Map任务的数量。在 Tez 中,任务的数量由分组拆分决定,这相当于 map reduce 作业中由输入拆分确定的Map数量。
Tez 使用多种机制和设置来确定完成查询所需的 reducer 数量。
本部分旨在帮助理解和调整 Hive on Tez 的并发会话,例如运行多个 Tez AM 容器。以下属性有助于理解默认队列和会话数行为。
(Tez Sessions)total = HiveServer2instances x (default.queues) x (sessions.per.default.queue)
通过示例理解:
在处理 Tez 查询上 Hive 的性能下降时,请查看下面列出的属性作为第一级检查。您可能需要根据您的查询和数据属性设置或调整其中一些属性。最好在开发和 QA 环境中评估配置属性,然后根据结果将其推送到生产环境。
此博客介绍了有关 CDP 的 Hive on Tez 查询的一些基本故障排除和调整指南。作为查询性能分析的第一步,您应该验证并验证在 Hive 和 Hive on Tez 服务上设置的所有配置。所做的每一项更改都应进行测试,以确保其做出可衡量且有益的改进。查询调优是一项专门的工作,并非所有查询都可以通过更改 Tez 配置属性来更好地执行。您可能会遇到需要深入研究 SQL 查询以优化和提高执行和性能的场景。如果您需要有关性能调整工作的更多帮助,请联系您的 Cloudera 帐户和专业服务团队以提供指导。 原文作者:Jay Desai 原文链接:https://blog.cloudera.com/optimizing-hive-on-tez-performance/
关注微信公共号了解更多信息:
本文由 mdnice 多平台发布
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。