Buscar..


Observaciones

  • Hive es una herramienta de almacenamiento de datos construida sobre Hadoop .
  • Proporciona un lenguaje similar a SQL para consultar datos.
  • Podemos ejecutar casi todas las consultas SQL en Hive, la única diferencia es que ejecuta un trabajo de reducción de mapa en el backend para obtener los resultados de Hadoop Cluster. Debido a esto, Hive a veces toma más tiempo para obtener el conjunto de resultados.

Ejemplo de conteo de palabras en Hive

Archivo de documentos (archivo de entrada)

María tenía un corderito

su vellón era blanco como la nieve

y por todas partes que fue María

el cordero estaba seguro de ir

Consulta de la colmena

CREATE TABLE FILES (line STRING);

LOAD DATA INPATH 'docs' OVERWRITE INTO TABLE FILES;

CREATE TABLE word_counts AS
SELECT word, count(1) AS count FROM
(SELECT explode(split(line, ' ')) AS word FROM FILES) w
GROUP BY word
ORDER BY word;

Salida de la tabla word_counts en Hive

Maria, 2

tenido, 1

a, 1

pequeño 1

cordero, 2

es, 1

vellón, 1

era, 2

blanco, 1

como, 1

nieve 1

y 1

en todas partes 1

que 1

fue, 1

el, 1

claro que 1

a 1

ve, 1

Instalación de Hive (linux)

Comience por descargar la última versión estable de https://hive.apache.org/downloads.html

-> Ahora untar el archivo con

$ tar -xvf hive-2.xy-bin.tar.gz

-> Crear un directorio en el / usr / local / con

$ sudo mkdir / usr / local / hive

-> Mueve el archivo a root con

$ mv ~ / Downloads / hive-2.xy / usr / local / hive

-> Editar variables de entorno para hadoop y hive en .bashrc

$ gedit ~ / .bashrc

Me gusta esto

export HIVE_HOME = / usr / local / hive / apache-hive-2.0.1-bin /

export PATH = $ PATH: $ HIVE_HOME / bin

export CLASSPATH = $ CLASSPATH: / usr / local / Hadoop / lib / * :.

export CLASSPATH = $ CLASSPATH: /usr/local/hive/apache-hive-2.0.1-bin/lib/* :.

-> Ahora, inicie hadoop si aún no se está ejecutando. Y asegúrese de que se está ejecutando y no está en modo seguro.

$ hadoop fs -mkdir / user / hive / warehouse

El directorio "almacén" es la ubicación para almacenar la tabla o los datos relacionados con la colmena.

$ hadoop fs -mkdir / tmp

El directorio temporal "tmp" es la ubicación temporal para almacenar el resultado intermedio del procesamiento.

-> Establecer permisos para leer / escribir en esas carpetas.

$ hadoop fs -chmod g + w / user / hive / warehouse

$ hadoop fs -chmod g + w / usuario / tmp

-> Ahora inicia HIVE con este comando en la consola

$ colmena

Instalación de Hive con Metastore Externo en Linux

Pre-requisitos:

  1. Java 7
  2. Hadoop (Consulte aquí para la instalación de Hadoop)
  3. Servidor Mysql y Cliente

Instalación:

Paso 1: descarga el último archivo de Hive desde la página de descargas .

Paso 2: Extraiga el tarball descargado ( Supuesto: El tarball se descarga en $ HOME )

tar -xvf /home/username/apache-hive-x.y.z-bin.tar.gz

Paso 3: Actualice el archivo de entorno ( ~/.bashrc )

export HIVE_HOME=/home/username/apache-hive-x.y.z-bin
export PATH=$HIVE_HOME/bin:$PATH

fuente el archivo para establecer las nuevas variables de entorno.

source ~/.bashrc

Paso 4: Descargue el conector JDBC para mysql desde aquí y extráigalo.

tar -xvf mysql-connector-java-a.b.c.tar.gz

El directorio extraído contiene el archivo jar del conector mysql-connector-java-abcjar . Copiarlo en el lib de $HIVE_HOME

cp mysql-connector-java-a.b.c.jar $HIVE_HOME/lib/

Configuración:

Cree el archivo de configuración de hive-site.xml en el $HIVE_HOME/conf/ y agregue las siguientes propiedades relacionadas con el metastore.

<configuration>
   <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://localhost/hive_meta</value>
      <description>JDBC connect string for a JDBC metastore</description>
   </property> 
   
   <property>
      <name>javax.jdo.option.ConnectionDriverName</name>    
      <value>com.mysql.jdbc.Driver</value>
      <description>Driver class name for a JDBC metastore</description>
   </property> 
   
   <property>
       <name>javax.jdo.option.ConnectionUserName</name> 
       <value>mysqluser</value>
       <description>username to use against metastore database</description>
   </property> 
   
   <property>
       <name>javax.jdo.option.ConnectionPassword</name> 
       <value>mysqlpass</value>
       <description>password to use against metastore database</description>
   </property> 

   <property>
       <name>datanucleus.autoCreateSchema</name>
       <value>false</value> 
   </property> 

   <property>
       <name>datanucleus.fixedDatastore</name>
       <value>true</value>
   </property>
</configuration>

Actualice los valores de MySQL "nombre de usuario" y "contraseña" en consecuencia en las propiedades.

Crear el esquema de Metastore:

Los scripts de esquema de metastore están disponibles en $HIVE_HOME/scripts/metastore/upgrade/mysql/

Inicie sesión en MySQL y obtenga el esquema,

mysql -u username -ppassword

mysql> create database hive_meta;
mysql> use hive_meta;
mysql> source hive-schema-x.y.z.mysql.sql;
mysql> exit;

Metastore de partida:

hive --service metastore

Para ejecutarlo en segundo plano,

nohup hive --service metastore &

Iniciar HiveServer2: (usar si es necesario)

hiveserver2

Para ejecutarlo en segundo plano,

nohup hiveserver2 metastore &

Nota: estos ejecutables están disponibles en $HIVE_HOME/bin/

Conectar:

Utilizar cualquiera de hive , beeline o Hue a conectar con la colmena.

Hive CLI está en desuso, se recomienda usar Beeline o Hue.

Configuraciones adicionales para Hue:

Actualice este valor en $HUE_HOME/desktop/conf/hue.ini

[beeswax] 
    hive_conf_dir=/home/username/apache-hive-x.y.z-bin/conf


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow