使用 Hive LLAP - Amazon EMR
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Hive LLAP

Amazon EMR 6.0.0 支持适用于 Hive 的 Live Long and Process (LLAP) 功能。与以前的默认 Tez 容器执行模式相比,LLAP 使用具有智能内存缓存的持久性守护程序来提高查询性能。

Hive LLAP 守护程序作为 YARN 服务进行管理和运行。由于 YARN 服务可被视为长时间运行的 YARN 应用程序,因此,您的某些群集资源专用于 Hive LLAP,而不能用于其他工作负载。有关更多信息,请参阅 LLAPYARN 服务 API

如何在 Amazon EMR 上启用 Hive LLAP

要在 Amazon EMR 上启用 Hive LLAP,请在启动集群时提供以下配置。

[ { "Classification": "hive", "Properties": { "hive.llap.enabled": "true" } } ]

有关更多信息,请参阅配置应用程序

默认情况下,Amazon EMR 将约 60% 的集群 YARN 资源分配给 Hive LLAP 守护程序。您可以配置分配给 Hive LLAP 的集群 YARN 资源的百分比,以及要为 Hive LLAP 分配考虑的任务和核心节点的数量。

例如,以下配置在三个任务或核心节点上启动具有三个守护程序的 Hive LLAP,并将三个核心或任务节点的 YARN 资源的 40% 分配给 Hive LLAP 守护程序。

[ { "Classification": "hive", "Properties": { "hive.llap.enabled": "true", "hive.llap.percent-allocation": "0.4", "hive.llap.num-instances": "3" } } ]

您可以在分类 hive-siteAPI 中使用以下 配置来覆盖默认 LLAP 资源设置。

属性 描述
hive.llap.daemon.yarn.container.mb LLAP 守护程序容器总大小(以 MB 为单位)
hive.llap.daemon.memory.per.instance.mb

LLAP 守护程序容器中执行程序所使用的总内存 (MB)

hive.llap.io.memory.size

LLAP 输入/输出的缓存大小

hive.llap.daemon.num.executors

每个 LLAP 守护程序的执行程序数

在集群上手动启动 LLAP

LLAP 使用的所有依赖项和配置都将作为集群启动的一部分打包到 LLAP tar 存档中。如果使用 "hive.llap.enabled": "true" 启用 LLAP,我们建议您使用 Amazon EMR 重新配置来对 LLAP 进行配置更改。

否则,对于对 hive-site.xml 的任何手动更改,您必须使用 hive --service llap 命令重新构建 LLAP tar 存档,如以下示例所示。

# Define how many resources you want to allocate to Hive LLAP LLAP_INSTANCES=<how many llap daemons to run on cluster> LLAP_SIZE=<total container size per llap daemon> LLAP_EXECUTORS=<number of executors per daemon> LLAP_XMX=<Memory used by executors> LLAP_CACHE=<Max cache size for IO allocator> yarn app -enableFastLaunch hive --service llap \ --instances $LLAP_INSTANCES \ --size ${LLAP_SIZE}m \ --executors $LLAP_EXECUTORS \ --xmx ${LLAP_XMX}m \ --cache ${LLAP_CACHE}m \ --name llap0 \ --auxhbase=false \ --startImmediately

检查配置单元的 LLAP 状态

使用以下命令可通过 Hive 检查 Hive LLAP 的状态。

hive --service llapstatus

使用以下命令通过 YARN 检查 Hive LLAP 的状态。

yarn app -status (name-of-llap-service) # example: yarn app -status llap0 | jq

启动或停止 Hive LLAP

由于 Hive LLAP 作为持久性 YARN 服务运行,因此可通过停止或重新启动 YARN 服务来停止或重新启动 Hive LLAP,如以下命令所示。

yarn app -stop llap0 yarn app -start llap0

调整 Hive LLAP 守护程序的数量

使用以下命令减少 LLAP 实例的数量。

yarn app -flex llap0 -component llap -1

有关更多信息,请参阅弹性服务组件