Búsqueda de sitios web

Cómo instalar y configurar Hive con alta disponibilidad - Parte 7


Hive es un modelo de Data Warehouse en el ecosistema Hadoop. Puede funcionar como una herramienta ETL además de Hadoop. Habilitar la alta disponibilidad (HA) en Hive no es similar a lo que hacemos en Master Services como Namenode y Resource Manager.

La conmutación por error automática no se producirá en Hive (Hiveserver2). Si falla algún Hiveserver2 (HS2), la ejecución de trabajos en ese HS2 fallido fallará. Necesitamos volver a enviar el trabajo para que pueda ejecutarse en otro HiveServer2. Por lo tanto, habilitar HA en HS2 no es más que aumentar el número de componentes HS2 en el Cluster.

En este artículo veremos los pasos para instalar y habilitar la Alta Disponibilidad de Hive.

Requisitos

  • Mejores prácticas para implementar Hadoop Server en CentOS/RHEL 7 – Parte 1
  • Configuración de requisitos previos de Hadoop y refuerzo de seguridad - Parte 2
  • Cómo instalar y configurar Cloudera Manager en CentOS/RHEL 7 – Parte 3
  • Cómo instalar CDH y configurar ubicaciones de servicios en CentOS/RHEL 7 – Parte 4
  • Cómo configurar la alta disponibilidad para Namenode - Parte 5
  • Cómo configurar la alta disponibilidad para Resource Manager – Parte 6

Empecemos…

Instalación y configuración de colmena

1. Inicie sesión en Cloudera Manager en la siguiente URL y navegue hasta Cloudera Manager –> Agregar servicio .

http://13.233.129.39:7180/cmf/home

2. Seleccione el servicio ‘Hive‘.

3. Asignar los servicios en los nodos.

  • Gateway: es el servicio del cliente donde el usuario puede acceder a Hive. Por lo general, este servicio se ubicará en nodos Edge dedicados a los usuarios.
  • Hive Metastore: es un repositorio central para almacenar metadatos de Hive.
  • WebHCat Server: es una API web para HCatalog y otros servicios de Hadoop.
  • Hiveserver2 – Es una interfaz de clientes para la ejecución de consultas en Hive.

Una vez seleccionados los servidores, haga clic en 'Continuar' para continuar.

4. Hive Metastore necesita una base de datos subyacente para almacenar metadatos. Aquí estamos utilizando la base de datos PostgreSQL predeterminada que está integrada con CDH.

Los detalles de la base de datos mencionada a continuación se ingresarán automáticamente, se omitirá "Probar conexión", ya que la base de datos mencionada se creará sobre la marcha. En tiempo real, necesitamos crear la base de datos en la base de datos externa y probar la conexión para continuar. Una vez hecho esto, haga clic en "Continuar".

5. Configure el directorio Hive Warehouse, /user/hive/warehouse es la ruta de directorio predeterminada para almacenar tablas de Hive. Haga clic en "Continuar".

6. Se inicia la instalación de Hive.

7. Una vez completada la instalación, puede obtener el estado "Finalizado". Haga clic en "Continuar" para continuar.

8. La instalación y configuración de Hive se completaron exitosamente. Haga clic en 'Finalizar' para completar el procedimiento de instalación.

9. Puede ver el servicio Hive agregado en el Cluster a través del Panel de Cloudera Manager.

10. Puede ver el Hiveserver2 en Instancias de Hive. Hemos agregado Hiveserver2 en master1.

Cloudera Manager –> Hive –> Instancias –> Hiveserver2.

Habilitación de la alta disponibilidad en Hive

11. A continuación, agregue el rol de Hive yendo a Cloudera Manager –> Hive –> Acciones –> Agregar instancias de rol.

12. Seleccione los servidores donde desea colocar Hiveserver2 adicional. Puedes agregar más de dos, no hay límite. Aquí estamos agregando uno adicional Hiveserver2 en master2.

13. Una vez seleccionado el servidor, haga clic en "Continuar".

14. Se agregará un Hiverserver2 a las instancias de Hive; deberá iniciarlo yendo a Cloudera Manager. –> Hive –> Instancias –> (Select Hiveserver2 agregado recientemente) –> Acción para seleccionados –> < fuerte>Inicio.

15. Una vez que Hiveserver2 haya iniciado en master2, obtendrá el estado "Terminado". Haga clic en Cerrar.

16. Puede ver que ambos Hiveserver2 se están ejecutando.

Verificación de la disponibilidad de Hive

Podemos conectar Hiveserver2 a través de beeline, que es un cliente ligero y una línea de comandos. Utiliza el controlador JDBC para establecer la conexión.

17. Inicie sesión en el servidor donde se ejecuta Hive Gateway.

[tecmint@master1 ~]$ beeline

18. Introduzca la cadena de conexión JDBC para conectar el Hiveserver2. En este sentido, en la cadena estamos mencionando el Hiverserver2 (master2) con su número de puerto predeterminado 10000. Esta cadena de conexión solo se conectará al Hiveserver2 que se ejecuta en master2.

beeline> !connect "jdbc:hive2://master1.linux-console.net:10000"

19. Ejecute una consulta de muestra.

0: jdbc:hive2://master1.linux-console.net:10000> show databases;

Esta es la base de datos predeterminada que viene incorporada.

20. Utilice el siguiente comando para finalizar la sesión de Hive.

0: jdbc:hive2://master1.linux-console.net:10000> !quit

21. Puede utilizar la misma forma para conectar Hiveserver2 que se ejecuta en master2.

beeline> !connect "jdbc:hive2://master2.linux-console.net:10000"

23. Podemos conectar el Hiveserver2 en modo Zookeeper Discovery. En este método, no necesitamos mencionar Hiveserver2 en la cadena de conexión, sino que utilizamos Zookeeper para descubrir el Hiveserver2 disponible.

Aquí podemos utilizar un equilibrador de carga de terceros para equilibrar la carga entre los Hiverserver2 disponibles. La siguiente configuración es necesaria para habilitar el Modo de descubrimiento de Zookeeper yendo a Cloudera Manager –> Hive –> Configuración.

24. A continuación, busque la propiedad “Fragmento de configuración avanzada de HiveServer2” y haga clic en el símbolo + para agregar la siguiente propiedad.

Name : hive.server2.support.dynamic.service.discovery
Value : true
Description : <any description>

25. Una vez ingresada a la propiedad, haga clic en 'Guardar cambios'.

26. A medida que realizamos cambios en la configuración, es necesario reiniciar los servicios afectados haciendo clic en el símbolo de color naranja para reiniciar los servicios.

27. Haga clic en los servicios "Reiniciar Stale".

28. Hay dos opciones disponibles. Si el clúster está en producción activa, debemos preferir el reinicio continuo para minimizar la interrupción. Como estamos instalando recientemente, podemos elegir la segunda opción "Volver a implementar la configuración del cliente" y hacer clic en "Reiniciar ahora".

29. Una vez que el reinicio se haya completado correctamente, obtendrá el estado "Terminado". Haga clic en "Finalizar" para completar el proceso.

30. Ahora conectaremos el Hiveserver2 usando el modo Zookeeper Discovery. En la conexión JDBC, la cadena que necesitamos para usar los servidores Zookeeper con su número de puerto 2081. Recopile los servidores de Zookeeper yendo a Cloudera Manager –> Zookeeper –> Instancias –> (Anote los nombres de los servidores).

Estos son los tres servidores que tienen Zookeeper, 2181 es el número de puerto.

master1.linux-console.net:2181
master2.linux-console.net:2181
worker1.linux-console.net:2181

31. Ahora entra en línea recta.

[tecmint@master1 ~]$ beeline

32. Introduzca la cadena de conexión JDBC como se menciona a continuación. Tenemos que mencionar el Modo de descubrimiento de servicios y el Espacio de nombres de Zookeeper. 'hiveserver2' es el espacio de nombres predeterminado de Hiveserver2.

beeline>!connect "jdbc:hive2://master1.linux-console.net:2181,master2.linux-console.net:2181,worker1.linux-console.net:2181/;serviceDiscoveryMode=zookeeper;zookeeperNamespace=hiveserver2"

33. Ahora la sesión está conectada a Hiveserver2 ejecutándose en master1. Ejecute una consulta de muestra para validar. Utilice el siguiente comando para crear una base de datos.

0: jdbc:hive2://master1.linux-console.net:2181,mast> create database tecmint;

34. Utilice el siguiente comando para enumerar la base de datos.

0: jdbc:hive2://master1.linux-console.net:2181,mast> show databases;

35. Ahora validaremos la Alta Disponibilidad en el Modo Descubrimiento de Zookeeper. Vaya a Cloudera Manager y detenga el Hiveserver2 en master1 que hemos probado anteriormente.

Cloudera Manager –> Hive –> Instancias –> (seleccione Hiveserver2 en master1 ) –> Acción para seleccionado –> Detener.

36. Haga clic en "Detener". Una vez detenido, obtendrá el estado "Terminado". Verifique Hiveserver2 en master1 navegando a Hive –> Instancias.

37. Entre en beeline y conecte el Hiveserver2 usando la misma cadena de conexión JDBC con Zookeeper Discovery Modo como lo hicimos en los pasos anteriores.

[tecmint@master1 ~]$ beeline

beeline>!connect "jdbc:hive2://master1.linux-console.net:2181,master2.linux-console.net:2181,worker1.linux-console.net:2181/;serviceDiscoveryMode=zookeeper;zookeeperNamespace=hiveserver2"

Ahora estará conectado a Hiveserver2 ejecutándose en master2.

38. Valide con una consulta de muestra.

0: jdbc:hive2://master1.linux-console.net:2181,mast> show databases;

Conclusión

En este artículo, hemos analizado los pasos detallados para tener el modelo Hive Data Warehouse en nuestro Cluster con alta disponibilidad. En un entorno de producción en tiempo real, se colocarán más de tres Hiveserver2 con el Modo de descubrimiento de Zookeeper habilitado.

Aquí, todos los Hiveserver2 se registran en Zookeeper bajo un espacio de nombres común. Zookeeper dinámicamente descubre el Hiveserver2 disponible y establece la sesión de Hive.