Hive Live Long and Process(LLAP) 사용 - Amazon EMR

Hive Live Long and Process(LLAP) 사용

Amazon EMR 6.0.0은 Hive용 LLAP(Live Long and Process) 기능을 지원합니다. LLAP는 지능형 인 메모리 캐싱을 통해 영구 데몬을 사용하여 이전의 기본 Tez 컨테이너 실행 모드에 비해 쿼리 성능을 향상시킵니다.

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은 클러스터 YARN 리소스의 약 60%를 Hive LLAP 대몬(daemon)에 할당합니다. Hive LLAP에 할당되는 클러스터 YARN 리소스의 비율과 Hive LLAP 할당에 고려할 작업 및 코어 노드의 수를 구성할 수 있습니다.

예를 들어, 다음 구성은 3개의 작업 또는 코어 노드에서 3개의 데몬으로 Hive LLAP를 시작하고 3개의 코어 또는 작업 노드의 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 대몬(daemon) 수 조정

LLAP 인스턴스 수를 줄이려면 다음 명령을 사용합니다.

yarn app -flex llap0 -component llap -1

자세한 내용은 서비스 구성 요소 Flex를 참조하십시오.