Uso de Hive Live Long and Process (LLAP)
Amazon EMR 6.0.0 es compatible con la funcionalidad Live Long and Process (LLAP) para Hive. LLAP utiliza daemons persistentes con almacenamiento inteligente en memoria caché para mejorar el rendimiento de las consultas en comparación con el anterior modo de ejecución predeterminado del contenedor de Tez.
Los daemons de LLAP Hive se administran y ejecutan como un servicio de YARN. Dado que un servicio de YARN puede considerarse una aplicación de YARN de larga duración, algunos de los recursos del clúster están dedicados a Hive LLAP y no se pueden utilizar para otras cargas de trabajo. Para obtener más información, consulte LLAP
Habilitación de Hive LLAP en Amazon EMR
Para habilitar Hive LLAP en Amazon EMR, proporcione la siguiente configuración al lanzar un clúster.
[ { "Classification": "hive", "Properties": { "hive.llap.enabled": "true" } } ]
Para obtener más información, consulte Configuración de aplicaciones.
De forma predeterminada, Amazon EMR asigna alrededor del 60 % de los recursos de YARN del clúster a los daemons de Hive LLAP. Puede configurar el porcentaje de recursos YARN de clúster que se asignan a Hive LLAP y el número de nodos principales y de tareas que se tendrán en cuenta para esa asignación a Hive LLAP.
Por ejemplo, la siguiente configuración inicia Hive LLAP con tres daemons en tres nodos de tareas o principales y asigna el 40 por ciento de los recursos de YARN de los tres nodos principales o de tareas a los daemons de Hive LLAP.
[ { "Classification": "hive", "Properties": { "hive.llap.enabled": "true", "hive.llap.percent-allocation": "0.4", "hive.llap.num-instances": "3" } } ]
Puede utilizar las siguientes configuraciones de hive-site
en la API de clasificación para anular la configuración predeterminada de recursos de LLAP.
Propiedad | Descripción |
---|---|
hive.llap.daemon.yarn.container.mb | Tamaño total del contenedor de daemons de LLAP (en MB) |
hive.llap.daemon.memory.per.instance.mb |
La memoria total utilizada por los ejecutores en el contenedor de daemons de LLAP (en MB) |
hive.llap.io.memory.size |
Tamaño de la caché para entrada/salida de LLAP |
hive.llap.daemon.num.executors |
Número de ejecutores por daemon de LLAP |
Inicio manual de LLAP en el clúster
Todas las dependencias y configuraciones utilizadas por LLAP se empaquetan en el archivo tar de LLAP como parte del inicio del clúster. Si LLAP se ha habilitado mediante "hive.llap.enabled": "true"
, recomendamos usar la reconfiguración de Amazon EMR para hacer cambios de configuración en LLAP.
De lo contrario, para cualquier cambio manual en hive-site.xml
, deberá reconstruir el archivo tar de LLAP mediante el comando hive --service llap
, como se muestra en el ejemplo siguiente.
# 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
Comprobación del estado de Hive LLAP
Utilice el siguiente comando para comprobar el estado de Hive LLAP mediante Hive.
hive --service llapstatus
Utilice el siguiente comando para comprobar el estado de Hive LLAP mediante YARN.
yarn app -status (name-of-llap-service) # example: yarn app -status llap0 | jq
Inicio o detención de Hive LLAP
Puesto que Hive LLAP se ejecuta como un servicio de YARN persistente, debe detener o reiniciar el servicio de YARN para detener o reiniciar el Hive LLAP. Los siguientes comandos lo demuestran.
yarn app -stop llap0 yarn app -start llap0
Cambio del número de daemons de Hive LLAP
Utilice el siguiente comando para reducir el número de instancias de LLAP.
yarn app -flex llap0 -component llap -1
Para obtener más información, consulte el apartado sobre cómo usar el comando Flex para modificar el número de contenedores de un componente de un servicio