Apache Hive Instalación y configuración de MySql Metastore para Hive

Apache Hive fue desarrollado inicialmente por Facebook en 2010. Es un paquete de almacenamiento de datos, utilizado para el análisis de datos. Hive se usa para administrar y consultar datos estructurados con su lenguaje de consulta conocido como HQL o HIVEQL, que es bastante similar al lenguaje de consulta SQL . Hadoop proporciona MapReduce como una herramienta de programación para trabajar en Hadoop, que usa el lenguaje de programación Java , por lo que los desarrolladores de Facebook introdujeron Hive para que sea más fácil para los usuarios que se sienten más cómodos con SQL que con Java.

Características de la colmena:

  • Los datos se almacenan en HDFS
  • El código de MapReduce se puede conectar fácilmente
  • Para Fault-Tolerance usa Hadoop
  • Los controladores JDBC/ODBC también están disponibles en Hive

Metastore mantiene un registro de los esquemas de la base de datos y otra información relacionada, como los metadatos de las tablas, las columnas de una tabla y sus tipos de datos, etc. producción, es bueno usar Metastore de tipo MySql. Una de las principales desventajas de usar bases de datos Derby es que aquí no podemos acceder a varias instancias de Hive, por lo que usamos MySql con fines de producción.

Requisito previo: debe tener Hadoop y Java preinstalados para instalar Apache Hive.

Pasos para descargar y configurar MySql Metastore para Hive

Paso 1: descargue Hive de su sitio web oficial haciendo clic en este enlace y descargue el archivo tar que se muestra en la imagen a continuación, que tiene un tamaño de aproximadamente 143 MB .

download-page

Una vez que el archivo se descargue en su carpeta / descargas, extraiga este archivo con el siguiente comando yendo al directorio / Descargas y luego colóquelo en la ubicación deseada. En mi caso, lo muevo a la carpeta /Documentos ya que mi Hadoop también está instalado en este directorio.

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

Paso 2: una vez que haya descargado Hive, instale el conector java de MySQL usando el siguiente comando.

sudo apt-get install libmysql-java

A continuación, cree un vínculo entre el archivo jar y la carpeta lib de Hive y copie el archivo jar en la carpeta lib.

sudo ln -s /usr/share/java/mysql-connector-java.jar $HIVE_HOME/lib/mysql-connector-java.jar

Paso 3: muévase a la carpeta /lib dentro de su carpeta apache-hive-2.1.1-bin y luego elimine el archivo log4j-slf4j-impl-2.4.1.jar . Hemos eliminado este archivo porque el mismo archivo también está presente en la carpeta Hadoop, por lo que a veces da un error.

Paso 4: Ahora inicie Hadoop con el siguiente comando:

start-dfs.sh
start-yarn.sh

para hilo

Puede confirmar que todos los demonios comenzaron a funcionar correctamente o no utilizando el comando jps .

using jps command

Paso 5: una vez que se inicie Hadoop, crearemos directorios para la colmena. Implemente los siguientes comandos en su terminal para crear directorios.

hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -mkdir -p /tmp/hive

En Warehouse almacenaremos todos los datos de nuestras bases de datos y tablas. Todo este directorio está por defecto y ya está configurado.

Paso 6: Ahora cambiaremos el permiso para todo este directorio con el siguiente comando.

hdfs dfs -chmod 777 /tmp/
hdfs dfs -chmod 777 /user/hive/warehouse
hdfs dfs -chmod 777 /tmp/hive

Paso 7: Ahora instalaremos MySQL con el siguiente comando.

sudo apt-get install mysql-server

Paso 8: cree la base de datos Metastore después de ingresar a su terminal MySQL, implemente todos los comandos a continuación para hacerlo (use root como contraseña para SQL).

mysql> sudo mysql -u root -p

mysql> CREATE DATABASE metastore_db;
mysql> USE metastore_db;

Cambie el nombre de usuario según usted y la ruta también si es diferente.

mysql> SOURCE /home/{user-name}/Documents/apache-hive-2.1.1-bin/scripts/metastore/upgrade/mysql/hive-schema-0.14.0.mysql.sql;

Paso 9: Ahora cree el usuario de Hive y la contraseña de Hive con el siguiente comando en la terminal mysql .

mysql> CREATE USER 'hiveusr'@'%' IDENTIFIED BY 'hivepassword';
mysql> GRANT all on *.* to 'hiveusr'@localhost identified by 'hivepassword';
mysql> flush privileges;

En mi caso, el nombre de mi usuario de Hive es hiveusr y la contraseña es hivepassword . De forma predeterminada, su usuario de Hive es APP y la contraseña es mía , puede cambiar el nombre de usuario y la contraseña si lo desea.

default username and password in Hive

Luego escriba exit para salir de la terminal MySQL.

mysql> exit

Paso 10: Ahora vaya a apache-hive-2.1.1-bin, luego vaya a la carpeta conf y cambie el nombre de hive-default.xml.template a hive-site.xml y hive-env.sh.template a hive-env.sh

Paso 11: ahora comenzamos la configuración de Hive, vaya a Hive-site.xml y cambie la siguiente propiedad (use clrl+f para buscar la propiedad en un archivo)

A: URL de conexión

<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/metastore_db?createDatabaseIfNotExist=true</value>

B: Nombre de usuario de conexión

<name>javax.jdo.option.ConnectionUserName</name>
<value>hiveusr</value>

// Cambia el nombre de usuario en valor si lo cambias arriba.

C: contraseña de conexión

<name>javax.jdo.option.ConnectionPassword</name>
<value>hivepassword</value>

// cambia el valor de la contraseña si lo cambias arriba.

D: nombre del controlador de conexión

<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>MySQL JDBC driver class</description>

Paso 12: ahora abra hive-env.sh y agregue su ruta de acceso de hadoop dentro de él.

export HADOOP_HOME=/home/dikshant/Documents/hadoop

Paso 13: también reemplace los valores a continuación en hive-site.xml (busque la propiedad con ctrl+f e ingrese el nombre dentro del cuadro de búsqueda)

A: Reemplace estas propiedades

<property>
    <name>hive.exec.local.scratchdir</name>
    <value>${system:java.io.tmpdir}/${system:user.name}</value>
    <description>Local scratch space for Hive jobs</description>
  </property>

Con esta propiedad

<property>
    <name>hive.exec.local.scratchdir</name>
    <value>/tmp/${user.name}</value>
    <description>Local scratch space for Hive jobs</description>
  </property>

B: Reemplace esta propiedad

<property>
    <name>hive.downloaded.resources.dir</name>
    <value>${system:java.io.tmpdir}/${hive.session.id}_resources</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
  </property>

Con estas propiedades

<property>
  <name>hive.downloaded.resources.dir</name>
  <value>/tmp/${user.name}_resources</value>
  <description>Temporary local directory for added resources in the remote file system.</description>
</property>

Paso 14: ahora la parte más importante es establecer la ruta para Hive en nuestro archivo .bashrc , así que abra .bashrc con el siguiente comando.

sudo gedit ~/.bashrc

Copie la ruta de Hive que se muestra en la imagen a continuación y actualícela de acuerdo con su ruta de Hive (si es diferente).

#Hive Path
export HIVE_HOME=/home/dikshant/Documents/apache-hive-2.1.1-bin
export PATH=$PATH:$HIVE_HOME/bin

Luego obtenga este archivo con el siguiente comando.

source ~/.bashrc

Paso 15: Ahora ejecute este comando a continuación para inicializar el esquema para la base de datos MySQL.

schematool -initSchema -dbType mysql

Initialize schema for MySQL database in HIve Installation

Paso 16: eso es todo, ahora ejecute Hive Shell escribiendo Hive en la terminal.

hive

Testing Hive Command

Output of Hive Command

Publicación traducida automáticamente

Artículo escrito por dikshantmalidev y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *