如何提高Hive 的查询性能?
Apache Hive是一种强大的数据分析工具。在处理数PB的数据时,了解如何提高查询性能非常重要。以下内容是基于 HDP-2.6.4 版本汇总的,如有不足之处,望指出。
1、使用Tez引擎
Apache Tez Engine是一个可扩展的框架,用于构建高性能批处理和交互式数据处理。它由YARN在Hadoop中 调度。Tez通过提高处理速度和保持MapReduce扩展到数PB数据的能力来改进MapReduce job。
通过设置hive.execution.engine 为tez:可以在环境中启用Tez引擎:
set hive.execution.engine=tez;
2、使用向量化
向量化通过在单个操作中获取 1024 行而不是 每次只获取单行来改善 scans, aggregations, filters 和 join 这类操作的性能。它大大减少了扫描、过滤器、聚合和
连接等典型查询操作的CPU 使用。
我们可以通过执行以下命令在环境中启用向量化:
set hive.vectorized.execution.enabled=true;
set hive.vectorized.execution.reduce.enabled=true;