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

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

使用HiveLLAP

Amazon EMR 6.0.0支持Hive的LiveLong和流程(LLAP)功能。与之前的Tez容器默认执行模式相比,LLAP使用带有智能内存中缓冲的持久守护程序来提高查询性能。

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

如何启用HiveLLAP Amazon EMR

启用HiveLLAP Amazon EMR,请在启动群集时提供以下配置。

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

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

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

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

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

您可以使用以下工具 hive-site 分类中的配置 API 覆盖默认LLAP资源设置。

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

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

hive.llap.io.memory.size

LLAP输入/输出的Cache大小

hive.llap.daemon.num.executors

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

要手动启动群集上的LLAP

LLAP使用的所有依赖项和配置作为群集启动的一部分被打包到LLAPtar存档中。如果使用 "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

检查hiveLLAP状态

使用下列命令可通过Hive检查HiveLLAP的状态。

hive --service llapstatus

使用下列命令可使用YARN检查HiveLLAP的状态。

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

启动或停止HiveLLAP

由于HiveLLAP以持续YARN服务的形式运行,因此您可以停止或重新启动HiveLLAP,方法是停止或重新启动YARN服务,如以下命令所示。

yarn app -stop llap0 yarn app -start llap0

要调整HiveLLAP守护程序的数量大小

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

yarn app -flex llap0 -component llap -1

更多信息,请参阅 灵活变通服务的组成部分.