本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Hive Live Long and Process (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"
}
}
]
您可以在分類 API 中使用下列 hive-site
組態來覆寫預設 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 協助程式的執行器數目 |
在叢集上手動啟動 Hive 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
檢查 Hive 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
如需詳細資訊,請參閱 Flex a component of a service