Componentes del almacén de datos: construcción del entorno de Hive y uso básico

Código fuente de este artículo: GitHub || GitEE

1. Introducción a los conceptos básicos de Hive

1. Descripción básica

Hive es una herramienta de almacenamiento de datos basada en Hadoop, que se utiliza para la extracción, transformación y carga de datos. Es un componente que puede consultar, analizar y almacenar datos a gran escala almacenados en Hadoop. Las herramientas de almacenamiento de datos de Hive pueden convertir datos estructurados. El archivo se asigna a una tabla de base de datos y se proporciona la función de consulta SQL. Las declaraciones SQL se pueden convertir en tareas de MapReduce para su ejecución. El costo de uso es bajo. Las estadísticas rápidas de MapReduce se pueden realizar a través de declaraciones SQL similares, lo que hace que MapReduce sea más fácil sin la necesidad de un desarrollo especial Aplicación MapReduce. Hive es muy adecuado para el análisis estadístico de almacenamiento de datos.

2. Composición y estructura

Interfaz de usuario : ClientCLI, JDBC para acceder a Hive, navegador WEBUI para acceder a Hive.

Metadatos : Hive almacena metadatos en bases de datos, como mysql y derby. Los metadatos en Hive incluyen el nombre de la tabla, las columnas y particiones y los atributos de la tabla, los atributos de la tabla (si es una tabla externa, etc.) y el directorio donde se encuentran los datos de la tabla.

Controlador : basado en el intérprete, editor y optimizador, la declaración de consulta HQL se genera a partir del análisis léxico, análisis de sintaxis, compilación, optimización y generación de planes de consulta.

Motor de ejecución : ExecutionEngine convierte el plan de ejecución lógica en un plan físico que se puede ejecutar.

Capa inferior de Hadoop : almacenamiento basado en HDFS, cálculo mediante MapReduce, mecanismo de programación basado en Yarn.

Hive recibe la solicitud interactiva enviada al cliente, recibe la instrucción de operación (SQL), traduce la instrucción a MapReduce, la envía a Hadoop para su ejecución y finalmente envía el resultado de la ejecución al cliente.

2. Instalación del entorno Hive

1. Prepare el paquete de instalación

hive-1.2, depende del entorno del clúster de Hadoop y está ubicado en el servicio hop01.

2. Descomprima y cambie el nombre

tar -zxvf apache-hive-1.2.1-bin.tar.gz
mv apache-hive-1.2.1-bin/ hive1.2

3. Modifique el archivo de configuración

Crear archivo de configuración

[root@hop01 conf]# pwd
/opt/hive1.2/conf
[root@hop01 conf]# mv hive-env.sh.template hive-env.sh

Agregar contenido

[root@hop01 conf]# vim hive-env.sh
export HADOOP_HOME=/opt/hadoop2.7
export HIVE_CONF_DIR=/opt/hive1.2/conf

El contenido de la configuración es la ruta de Hadoop y la ruta del archivo de configuración de la colmena.

4. Configuración de Hadoop

Primero inicie hdfs y yarn; luego cree dos directorios / tmp y / user / hive / warehouse en HDFS y modifique los permisos.

bin/hadoop fs -mkdir /tmp
bin/hadoop fs -mkdir -p /user/hive/warehouse
bin/hadoop fs -chmod g+w /tmp
bin/hadoop fs -chmod g+w /user/hive/warehouse

5. Inicie Hive

[root@hop01 hive1.2]# bin/hive

6. Operaciones básicas

Ver base de datos

hive> show databases ;

Seleccionar base de datos

hive> use default;

Ver hoja de datos

hive> show tables;

Crea una base de datos para usar

hive> create database mytestdb;
hive> show databases ;
default
mytestdb
hive> use mytestdb;

Crear mesa

create table hv_user (id int, name string, age int);

Ver estructura de la tabla

hive> desc hv_user;
id                  	int                 	                    
name                	string              	                    
age                 	int 

Agregar datos de tabla

insert into hv_user values (1, "test-user", 23);

Consultar datos de la tabla

hive> select * from hv_user ;

Nota: A través de la observación del registro de consultas, se puede ver claramente el proceso ejecutado por Hive.

Eliminar tabla

hive> drop table hv_user ;

Salir de Hive

hive> quit;

Ver el directorio de Hadoop

# hadoop fs -ls /user/hive/warehouse       
/user/hive/warehouse/mytestdb.db

La base de datos y los datos creados por Hive se almacenan en HDFS.

Tres, integrar el entorno MySQL5.7

Aquí, la versión MySQL5.7 está instalada de forma predeterminada, y la cuenta de inicio de sesión correspondiente está configurada, y el host del usuario raíz está configurado en modo%.

1. Cargue el paquete del controlador MySQL

Cargue el paquete de dependencia del controlador MySQL en el directorio lib del directorio de instalación de Hive.

[root@hop01 lib]# pwd
/opt/hive1.2/lib
[root@hop01 lib]# ll
mysql-connector-java-5.1.27-bin.jar

2. Cree la configuración del sitio de colmena

[root@hop01 conf]# pwd
/opt/hive1.2/conf
[root@hop01 conf]# touch hive-site.xml
[root@hop01 conf]# vim hive-site.xml

3. Configurar el almacenamiento MySQL

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
        <property>
          <name>javax.jdo.option.ConnectionURL</name>
          <value>jdbc:mysql://hop01:3306/metastore?createDatabaseIfNotExist=true</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>root</value>
          <description>username to use against metastore database</description>
        </property>

        <property>
          <name>javax.jdo.option.ConnectionPassword</name>
          <value>123456</value>
          <description>password to use against metastore database</description>
        </property>
</configuration>

Una vez completada la configuración, reinicie los entornos MySQL, hadoop y hive a su vez para ver la información de la base de datos MySQL Hay más bases de datos de metastore y tablas relacionadas.

4. Inicie hiveserver2 en segundo plano.

[root@hop01 hive1.2]# bin/hiveserver2 &

5. Prueba de conexión Jdbc

[root@hop01 hive1.2]# bin/beeline
Beeline version 1.2.1 by Apache Hive
beeline> !connect jdbc:hive2://hop01:10000
Connecting to jdbc:hive2://hop01:10000
Enter username for jdbc:hive2://hop01:10000: hiveroot (账户回车)
Enter password for jdbc:hive2://hop01:10000: ******   (密码123456回车)
Connected to: Apache Hive (version 1.2.1)
Driver: Hive JDBC (version 1.2.1)
0: jdbc:hive2://hop01:10000> show databases;
+----------------+--+
| database_name  |
+----------------+--+
| default        |
+----------------+--+

Cuatro, sintaxis de consulta avanzada

1. Funciones básicas

select count(*) count_user from hv_user;
select sum(age) sum_age from hv_user;
select min(age) min_age,max(age) max_age from hv_user;
+----------+----------+--+
| min_age  | max_age  |
+----------+----------+--+
| 23       | 25       |
+----------+----------+--+

2. Declaración de consulta condicional

select * from hv_user where name='test-user' limit 1;
+-------------+---------------+--------------+--+
| hv_user.id  | hv_user.name  | hv_user.age  |
+-------------+---------------+--------------+--+
| 1           | test-user     | 23           |
+-------------+---------------+--------------+--+

select * from hv_user where id>1 AND name like 'dev%';
+-------------+---------------+--------------+--+
| hv_user.id  | hv_user.name  | hv_user.age  |
+-------------+---------------+--------------+--+
| 2           | dev-user      | 25           |
+-------------+---------------+--------------+--+

select count(*) count_name,name from hv_user group by name;
+-------------+------------+--+
| count_name  |    name    |
+-------------+------------+--+
| 1           | dev-user   |
| 1           | test-user  |
+-------------+------------+--+

3. Conectar consulta

select t1.*,t2.* from hv_user t1 join hv_dept t2 on t1.id=t2.dp_id;
+--------+------------+---------+-----------+-------------+--+
| t1.id  |  t1.name   | t1.age  | t2.dp_id  | t2.dp_name  |
+--------+------------+---------+-----------+-------------+--+
| 1      | test-user  | 23      | 1         | 技术部      |
+--------+------------+---------+-----------+-------------+--+

Cinco, dirección de código fuente

GitHub·地址
https://github.com/cicadasmile/big-data-parent
GitEE·地址
https://gitee.com/cicadasmile/big-data-parent

Lectura recomendada: sistema de programación de acabado

Número de serie nombre del proyecto Dirección de GitHub Dirección GitEE Recomendado
01 Java describe patrones de diseño, algoritmos y estructuras de datos GitHub · haga clic aquí GitEE · Haga clic aquí ☆☆☆☆☆
02 Fundamentos Java, concurrencia, orientado a objetos, desarrollo web GitHub · haga clic aquí GitEE · Haga clic aquí ☆☆☆☆
03 Explicación detallada del caso del componente básico del microservicio SpringCloud GitHub · haga clic aquí GitEE · Haga clic aquí ☆☆☆
04 Caso completo de combate real de arquitectura de microservicio SpringCloud GitHub · haga clic aquí GitEE · Haga clic aquí ☆☆☆☆☆
05 Comenzando con la aplicación básica de SpringBoot framework a avanzada GitHub · haga clic aquí GitEE · Haga clic aquí ☆☆☆☆
06 SpringBoot framework integra y desarrolla middleware común GitHub · haga clic aquí GitEE · Haga clic aquí ☆☆☆☆☆
07 Caso básico de gestión de datos, distribución, diseño de arquitectura GitHub · haga clic aquí GitEE · Haga clic aquí ☆☆☆☆☆
08 Grandes series de datos, almacenamiento, componentes, informática y otros marcos GitHub · haga clic aquí GitEE · Haga clic aquí ☆☆☆☆☆

Supongo que te gusta

Origin blog.csdn.net/cicada_smile/article/details/112162362
Recomendado
Clasificación