本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Hive LLAP
Amazon EMR 6.0.0 支持适用于 Hive 的 Live Long and Process (LLAP) 功能。与以前的默认 Tez 容器执行模式相比,LLAP 使用具有智能内存缓存的持久性守护程序来提高查询性能。
Hive LLAP 守护程序作为 YARN 服务进行管理和运行。由于 YARN 服务可被视为长时间运行的 YARN 应用程序,因此,您的某些群集资源专用于 Hive
LLAP,而不能用于其他工作负载。有关更多信息,请参阅 LLAP
如何在 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-site
API 中使用以下 配置来覆盖默认 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
有关更多信息,请参阅弹性服务组件