Azure HDInsight 交互式查询群集 (Hive LLAP) schedule based autoscale

本文档提供了在 Azure HDInsight 中为 Interactive Query (LLAP) 群集类型启用基于计划的自动缩放的载入步骤。 它包括在 Hive-LLAP 中操作自动缩放的一些最佳做法。

可支持性

  • HDI 3.6 Interactive Query (LLAP) 群集不支持自动缩放。
  • HDI 4.0 Interactive Query 群集仅支持基于计划的自动缩放。

HDInsight 4.0 Interactive Query (LLAP) 自动缩放支持的功能

功能 基于计划的自动缩放
工作负载管理
Hive Warehouse Connector
手动安装的 LLAP

警告

如果在使用 YARN 资源的 HDI Interactive Query 群集上安装了其他服务,则计划的自动缩放行为具有不确定性。

自动缩放的 Interactive Query 群集设置

  1. 创建一个 HDInsight Interactive Query 群集。
  2. 成功创建群集后,导航到 Azure 门户并应用推荐的脚本操作
- Script Action: https://hdiconfigactions2.blob.core.chinacloudapi.cn/update-ambari-configs-for-llap-autoscale/update_ambari_configs.sh
- Requried Parameters:<MAX CONCURRENT QUERIES> <TEZ Queue Capacity Percent> 
    - <MAX CONCURRENT QUERIES> is a parameter that sets the max concurrent queries to run, it should be set to the max largest worker node count out of the schedules. 
    - <TEZ Queue Capacity Percent> The configurations below in the example are calculated based on D14v2 worker node SKU (100GB per yarn node) I.e., we are allocating 6% (6GB) per node to launch at least one TEZ AM which is of 4GB. If we are using smaller SKU worker nodes, the above configs need to be tuned proportionately. We need to allocate enough capacity for at least one TEZ AM to run on each node. Please refer to HDInsight Interactive Query Cluster(LLAP) sizing guide | Azure for more details.   

- Details:
    Above script action will update the Interactive Query cluster with the following:
    1. Configure a separate Tez queue to launch Tez Sessions. If no arguments are passed, we would configure Default Max Concurrency as 16 and Tez Queue Capacity as 6% of the overall cluster capacity. 
    2. Tunes hive configs for autoscale. 
    3. Sets the max concurrent queries can run in parallel.  
- Example: https://hdiconfigactions2.blob.core.chinacloudapi.cn/update-ambari-configs-for-llap-autoscale/update_ambari_configs.sh  21 6

  1. 启用和配置基于计划的自动缩放

备注

建议在两个日程安排之间留有足够的间隔,以便有效地利用数据缓存,即当有高峰使用时日程安排会纵向扩展,当没有使用时日程安排会纵向缩减。

Interactive Query 自动缩放常见问题解答

1. 按配置的计划在纵向缩减操作期间运行作业会发生什么情况? 

如果在触发纵向缩减时作业正在运行,我们可以期待以下结果之一

  • 由于 Tez AM 被终止,查询失败。
  • 由于容量减少而导致查询速度变慢,但最终成功完成。
  • 查询成功完成,未产生任何影响。

备注

建议在纵向缩减计划期间与用户一起规划相应的停机时间。

2. 使用 Hive Warehouse Connector 在启用自动缩放的 LLAP 群集中执行查询时,正在运行的 Spark 作业会发生什么情况?

如果在触发纵向缩减时作业正在运行(通过 Spark 群集触发),我们可以期待以下结果之一。

  • 由于 Tez AM 或容器丢失导致 Spark 驱动程序级别的 JDBC 调用失败,继而 Spark 作业失败
  • 由于容量减少而导致 Spark 作业速度变慢,但最终成功完成。
  • Spark 作业成功完成,没有任何影响。

3. 为什么我的查询在纵向扩展后运行缓慢?

由于自动缩放智能探测 add/remove 工作器节点是自动缩放的一部分,因此新添加的工作器节点上的 LLAP 数据缓存在纵向扩展后需要进行预热。 由于缓存未命中,对给定数据集的第一次查询可能会很慢,但后续查询会运行得很快。 建议在扩展后对性能关键表运行一些查询以预热数据缓存(可选)。

4. 基于计划的自动缩放是否支持 LLAP 中的工作负载管理?

目前,基于计划的自动缩放不支持 LLAP 中的工作负载管理。 但是,一旦缩放操作完成,便可以使用自定义 cron 作业来禁用和启用 WLM。 应在缩放事件的实际计划之前禁用 WLM,并应在缩放事件之后 1 小时启用 WLM。 在这里,用户/管理员应该提出一个不同的 WLM 资源计划,以适应他们群集在缩放后的大小。

5. 为什么在缩放发生后我们会在 Ambari UI 中看到陈旧的配置 Hive 配置?

每次 Interactive Query 群集缩放时,自动缩放智能探测都会对 Ambari 中的 LLAP 守护程序和并发数执行无提示更新,因为这些配置是静态的。 这些配置已更新,以确保自动缩放是否处于禁用状态或 LLAP 服务因某种原因重新启动。 它利用当时调整的所有工作节点大小。 不需要显式重启服务来处理这些陈旧的配置更改。

后续步骤

如果上述准则未解决疑问,请访问以下其中一项。

  • 通过 Azure 社区支持获取 Azure 专家的解答。

  • 如果需要更多帮助,可以从 Azure 门户提交支持请求。 从菜单栏中选择“支持”,或打开“帮助 + 支持”中心。 有关更多详细信息,请参阅如何创建 Azure 支持请求。 Azure 订阅包含对订阅管理和计费支持的访问权限,并且通过 Azure 支持计划之一提供技术支持。

其他参考: