hive Tutorial
Empezando con la colmena
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:
- Java 7
- Hadoop (Consulte aquí para la instalación de Hadoop)
- 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