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

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

使用 Hive LLAP

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

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

在亚马逊 EMR 上启用配置单元 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-site分类中的配置API来覆盖默认的 LLAP 资源设置。

属性 描述
蜂巢 .llap.daemon.纱线集装箱 .mb LLAP 守护程序容器总大小(以 MB 为单位)
配置单元 .llap.daemon.内存.每个实例.mb

LLAP 守护程序容器中执行程序使用的总内存(以 MB 为单位)

蜂巢 .llap.io.内存.尺寸

LLAP 输入/输出的高速缓存大小

蜂巢 .llap.daemon.nu.执行器

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

在群集上手动启动 LLAP

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

否则,对于任何手动更改hive-site.xml,您必须使用hive --service llap命令,如以下示例所示。

# 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

启动或停止蜂巢 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

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