Cómo instalar HIVE en Ubuntu (Guía de descarga y configuración)

⚡ Resumen inteligente

Apache Hive se instala en Ubuntu como una capa delgada de almacenamiento de datos sobre un clúster Hadoop ya en funcionamiento, por lo que la configuración es principalmente cuestión de descomprimir un archivo y apuntar tres variables de entorno a los directorios correctos.

  • 🧱 Hadoop primero: Todos los demonios de Hadoop deben estar en funcionamiento, ya que Hive almacena los datos de sus tablas en HDFS y envía sus trabajos al clúster.
  • ⬇️ Fuente de descarga: Las versiones binarias se distribuyen desde la página espejo de Apache, y la línea 3.x llegó al final de su ciclo de vida en octubre de 2024.
  • 📁 Dos archivos de configuración: HIVE_HOME debe estar en bashrc, y HADOOP_HOME debe estar en hive-config.sh dentro del directorio bin de Hive.
  • 💾 Carpetas HDFS: Los directorios warehouse y tmp deben existir en HDFS con permisos de escritura para el grupo antes de que se cree la primera tabla.
  • 🧩 Paso del esquema: La utilidad schematool crea las tablas del metastore, y Hive 3.x y versiones posteriores se niegan a iniciarse con un esquema no inicializado.
  • ???? Verificar rápidamente: Una instrucción CREATE seguida de DESCRIPTE demuestra que el shell, el metastore y HDFS están conectados correctamente.

Cómo instalar Hive en Ubuntu

Antes de la instalación de Apache Hive, necesitamos un dispositivo dedicado. Hadoop Instalación, funcionamiento y funcionamiento de todos los demonios de Hadoop.

Para la instalación de Hadoop, consulte esto. este enlace.

Una vez que todos los demonios de Hadoop funcionen correctamente, comience la instalación de la parte de Hive. El siguiente tutorial consta de cuatro etapas:

Proceso de instalación de Apache Hive

  1. Requisitos previos y compatibilidad de versiones
  2. Instalación de colmena
  3. Inicialización del esquema de Metastore
  4. Comandos del shell de colmena

Requisitos previos para instalar Apache Hive en Ubuntu

Hive no es una base de datos independiente. Es una capa de consulta que traduce HiveQL en trabajos que se ejecutan en un clúster existente, por lo que casi todas las instalaciones fallidas tracEl problema radica en un requisito previo faltante en lugar de en Hive en sí. Confirme lo siguiente antes de descargar cualquier cosa:

  • Un JDK compatible. Hive 4.1.x se ejecuta en JDK 17, mientras que Hive 4.2.x eleva el mínimo a JDK 21. Compruebe la versión con java -version y asegúrese de que JAVA_HOME esté exportado.
  • Un clúster Hadoop en funcionamiento. Tanto el NameNode como el DataNode deben estar activos. Ejecutar jps y confirme que NameNode, DataNode, ResourceManager y NodeManager aparecen en la lista.
  • Acceso de escritura a HDFS. La cuenta que inicia Hive necesita permiso para crear directorios en HDFS.
  • Versiones coincidentes. Hive 4.2.0 está compilado para Hadoop 3.4.1 y Tez 0.10.5. La línea Hive 3.x llegó al final de su ciclo de vida en octubre de 2024, por lo que una instalación nueva debería apuntar a la línea 4.x.
  • Recursos gratuitos. Una configuración de aprendizaje de un solo nodo funciona correctamente con aproximadamente 4 GB de RAM y 20 GB de espacio libre en disco.

Una vez marcadas esas casillas, la secuencia de descarga y descompresión que se describe a continuación se desarrolla sin imprevistos.

Cómo instalar Hive en Ubuntu

A continuación se muestra un proceso paso a paso sobre cómo instalar Hive en Ubuntu:

Paso 1) Descargue e instale Hive en Ubuntu

Para descargar la configuración estable de Hive, consulte la APACHE URL como se menciona a continuación.

https://www.apache.org/dyn/closer.cgi/hive/ — ir a la URL y seleccione el enlace de descarga del espejo de Apache. El Página de descargas de Apache Hive Muestra qué versiones de lanzamiento se corresponden con qué versiones de Hadoop.

La página espejo se abre con la lista de directorios de versiones de Hive disponibles, como se muestra a continuación.

Página espejo de Apache que enumera los directorios de versiones disponibles de Apache Hive.

Seleccione la versión más reciente de la configuración de Hive. (En mi caso, es hive – 3.1.2). La carpeta de lanzamiento muestra los archivos binarios y de código fuente uno al lado del otro.

Carpeta de lanzamiento de Hive que muestra los archivos de distribución binarios y de código fuente.

Haz clic en el archivo bin y comenzará la descarga.

Mensaje de descarga del navegador para el archivo de distribución tar.gz del binario apache-hive

Paso 2) Ejemplotracen el archivo tar

Vaya a la ubicación del archivo tar descargado y luego ejecutetract el archivo tar usando el siguiente comando para instalar Hive en Ubuntu en su sistema.

tar -xvf  apache-hive-3.1.2-bin.tar.gz

La terminal muestra cada archivo a medida que se descomprime en el nuevo directorio de Hive.

Salida de terminal mientras el archivo tar de Hive está abiertotracTed en Ubuntu

Paso 3) Coloque diferentes propiedades de configuración en Apache Hive

En este paso vamos a hacer dos cosas:

  1. Colocar la ruta de inicio de Hive en el archivo bashrc
  2. Colocar la ruta de inicio de Hadoop en hive-config.sh

1) Mencione la ruta de Hive en ~/.bashrc

Abra el archivo para editarlo con el comando que se muestra a continuación.

Comando que abre el archivo bashrc para editar las variables de entorno de Hive.

  • Abra el archivo bashrc como se muestra en la captura de pantalla anterior.
  • Mencione la ruta de inicio de Hive, es decir, la ruta HIVE_HOME, en el archivo bashrc y expórtela como se muestra a continuación.

Se agregaron las líneas de exportación HIVE_HOME y PATH al final del archivo bashrc.

Code debe colocarse en bashrc:

export HIVE_HOME="/home/guru99hive/apache-hive-1.2.0-bin"
export PATH=$PATH:$HIVE_HOME/bin

Recarga el archivo con fuente ~ / .bashrc Por lo tanto, la nueva ruta surte efecto en la sesión de terminal actual.

2) Exportar la ruta de Hadoop en hive-config.sh

Para comunicarnos con el ecosistema Hadoop, definimos la ruta de inicio de Hadoop en el archivo de configuración de Hive. Abra hive-config.sh como se muestra a continuación.

Comando utilizado para abrir hive-config.sh desde el directorio bin de Hive.

Mencione la ruta HADOOP_HOME en el archivo hive-config.sh como se muestra a continuación.

Ruta HADOOP_HOME declarada dentro del archivo hive-config.sh

Paso 4) Crear directorios de Hive en Hadoop

Para comunicarnos con Hadoop, necesitamos crear directorios en Hadoop como se muestra a continuación. Hive escribe los datos de las tablas gestionadas en el directorio warehouse y la salida de staging en el directorio tmp.

Comandos de HDFS que crean los directorios temporales y de almacenamiento de Hive.

Otorgar permisos de administrador para crear carpetas Hive en Hadoop. Si no aparece ningún mensaje de error, significa que Hadoop ha otorgado correctamente los permisos a las carpetas Hive.

Terminal que muestra los permisos de escritura del grupo otorgados a las carpetas de Hive en HDFS.

Paso 5) Entrar en la carcasa de la colmena

Acceda al entorno de Hive ingresando el '. /colmena' comando como se muestra a continuación.

El indicador de la consola de Hive se abrió desde el directorio bin de Hive en Ubuntu

Cómo inicializar el esquema del metastore de Hive

Hive almacena cada nombre de tabla, nombre de columna y tipo de dato en un almacén relacional llamado metastore. En una instalación nueva, este almacén está vacío, y a partir de Hive 3.x, la consola no se inicia hasta que existan las tablas de esquema. La utilidad schematool, que se incluye en el directorio bin de Hive, las crea.

Para una configuración de aprendizaje de un solo usuario, la base de datos Derby incluida es suficiente:

$HIVE_HOME/bin/schematool -dbType derby -initSchema

El comando imprime la versión del esquema que creó y termina con schemaTool completadoDerby escribe sus archivos en el directorio desde el que se ejecutó el comando, así que siempre inicie Hive desde ese mismo directorio después.

Derby solo acepta una sesión activa a la vez, lo que lo hace inadecuado para un clúster compartido. Apunte Hive en MySQL En su lugar, agregue las propiedades de conexión a hive-site.xml y vuelva a ejecutar la herramienta con un tipo de base de datos diferente:

$HIVE_HOME/bin/schematool -dbType mysql -initSchema

La lista completa de propiedades y la ubicación del conductor se tratan en la guía sobre cómo configure el metastore de Hive con MySQLHay dos banderas más que vale la pena recordar:

  • -información informa la versión del esquema registrada actualmente en el metastore sin cambiar nada.
  • -actualizarEsquema Migra un metastore existente a la versión del esquema de la versión de Hive recién instalada.

Una vez configurado el esquema, el intérprete de comandos está listo para aceptar su primera instrucción HiveQL.

Comandos del shell de colmena

Aquí vamos a crear una tabla de ejemplo usando el comando de shell de Hive "create" con nombres de columna.

Código de ejemplo para crear una base de datos en Hive. La siguiente captura de pantalla muestra la instrucción CREATE y la salida de DESCRIPTION una tras otra.

Salida de la consola de Hive para los comandos create table y describe product

En la captura de pantalla anterior podemos observar lo siguiente:

1) Creación de una tabla de ejemplo con nombres de columnas en Hive.

  • Aquí el nombre de la tabla es "producto" con tres nombres de columnas. producto, nombre y precio
  • Los nombres de las tres columnas se indican mediante su respectivo tipo de datos.
  • Todos los campos terminan con una coma ', '.

2) Visualización de la información de la tabla de Hive

  • Mediante el comando “describe” podemos ver la información de la tabla presente en Hive.
  • Aquí se muestran los nombres de las columnas con sus respectivos tipos de datos presentes en el esquema de la tabla.
  • Al final, mostrará el tiempo que tardó en ejecutarse este comando y el número de filas que recuperó.

Código de ejemplo para crear una base de datos en Colmena (para autoevaluación)

1) Crear tabla producto(producto int, pname string, precio float)

Row format delimited
Fields terminated by ',';

2) describir el producto;

Una vez que la tabla responde a la descripción, el shell, el metastore y HDFS están todos conectados entre sí. Desde aquí, la misma sesión acepta la información más amplia. crear, modificar y eliminar tablas declaraciones y el ordenar por, agrupar por y agrupar por consultas

Errores comunes de instalación de Hive en Ubuntu y cómo solucionarlos

La mayoría de los fallos iniciales se deben al entorno de Hive, más que a Hive en sí. La siguiente tabla relaciona los mensajes más frecuentes con su causa y el comando para solucionarlos.

Mensaje en pantalla Causa probable Solución
hive: comando no encontrado HIVE_HOME/bin no está en la ruta de acceso Vuelva a comprobar las líneas de exportación en bashrc y luego ejecute fuente ~ / .bashrc
No se encontró información de versión en el metastore. El esquema del metastore nunca se inicializó. Ejecute schematool con -initSchema para el tipo de base de datos elegido.
La llamada a localhost:9000 falló debido a una excepción de conexión. HDFS no se está ejecutando Inicie los demonios de Hadoop y confirme que NameNode y DataNode aparecen en jps
El nodo de nombres está en modo seguro. El NameNode aún se encuentra en su modo seguro de inicio. Salir del modo seguro con hdfs dfsadmin -safemode salir
Permiso denegado: acceso=ESCRITURA en /user/hive/warehouse El directorio del almacén no tiene permisos de escritura de grupo. Aplicar de nuevo hdfs dfs -chmod g+w en los directorios de almacén y temporales
NoSuchMethodError en Preconditions.checkArgument Hive y Hadoop distribuyen versiones diferentes del archivo JAR de Guava. Elimine el archivo JAR de Guava anterior en el directorio lib de Hive y copie el de Hadoop en su lugar.

Una forma rápida de separar un problema de Hive de un problema de Hadoop es ejecutar jps Primero. Si faltan los demonios, el problema está en el clúster; si están presentes y la consola sigue fallando, el problema está en la configuración de Hive o en el esquema del metastore. Una vez que la consola sea estable, Operadores y funciones integradas de HiveQL La referencia es el siguiente paso lógico.

Preguntas Frecuentes

Una tabla administrada permite que Hive sea propietario tanto de los metadatos como de los archivos, por lo que eliminarping Elimina los datos en el directorio del almacén. Una tabla externa registra solo los metadatos y los elimina.ping Deja los archivos subyacentes intactos.

Hive se ejecuta en cualquier lugar donde se ejecuten JVM y Hadoop, pero los scripts de shell asumen una arquitectura Unix. Windows La mayoría de los equipos utilizan WSL2 o una imagen Docker; en macOS El mismo archivo tar funciona una vez que se exportan JAVA_HOME y HADOOP_HOME.

Beeline es un cliente JDBC que se conecta a HiveServer2 en lugar de cargar Hive dentro del proceso de la consola. Admite usuarios concurrentes y autenticación, y la antigua interfaz de línea de comandos de Hive está obsoleta, por lo que las nuevas instalaciones deberían estandarizar el uso de Beeline.

Los motores modernos incorporan estadísticas históricas de consultas a modelos de costos aprendidos que predicen el tamaño de los escaneos, la poda de particiones y el orden de las uniones. Los proveedores de servicios en la nube exponen las mismas señales como recomendaciones automáticas para la compactación de archivos, la distribución de particiones y el dimensionamiento de contenedores.

Copilot genera rápidamente exportaciones de bashrc, bloques de hive-site.xml e invocaciones de schematool, y los ejecutores de agentic pueden ejecutarlos en un entorno aislado. Considere la salida como un primer borrador: los números de versión, los puertos y las rutas de directorio aún deben verificarse con su propio clúster.

Aproximadamente 4 GB de RAM y 20 GB de espacio libre en disco son suficientes para aprender, ya que Hive es un cliente ligero. El tamaño de los nodos de producción se basa en el clúster de Hadoop y la base de datos metastore, en lugar de en Hive.

Descomprima la nueva versión junto a la anterior, cambie la ruta de HIVE_HOME y luego ejecute schematool con -upgradeSchema para que el metastore coincida. La eliminación consiste simplemente en borrar el directorio Hive y eliminarping Las líneas de exportación de bashrc; los datos del almacén HDFS sobreviven.

No. MapReduce está obsoleto como motor de ejecución de Hive y Hive 4.x se ejecuta en Apache Tez de forma predeterminada. MapReduce Sigue siendo importante comprender este modelo porque Tez sigue el mismo modelo de trabajo dirigido.

Resumir este post con: