Conéctese a HiveMetaStore y adopte big data de código abierto

Este artículo es compartido por la comunidad de la nube de Huawei " Conectarse con HiveMetaStore y adoptar big data de código abierto ". Autor: Dormir es un gran problema.

1. Introducción

  • Versiones aplicables: 9.1.0 y superiores

En la era del análisis de fusión de big data, cuando se enfrentan cantidades masivas de datos y diversas consultas complejas, el rendimiento es la consideración más importante cuando se utiliza un motor de procesamiento de datos. El servicio GaussDB (DWS) tiene un potente motor informático. Su rendimiento informático es mejor que el de los motores informáticos como Hive o Spark en el servicio MRS y puede satisfacer las necesidades de alta elasticidad y agilidad del negocio a un costo menor. Al vincularse con MRS, no hay necesidad de reubicar datos. Se está convirtiendo cada vez más en una solución generalizada para utilizar el motor informático de alto rendimiento de DWS para procesar y analizar datos masivos en el lago de datos, así como varios servicios de consulta y análisis complejos. .

Podemos conectarnos al servicio de metadatos de HiveMetaStore creando un esquema externo, de modo que GaussDB (DWS) pueda consultar directamente la tabla de colmena/spark o insertar datos en la tabla de colmena/spark. No es necesario crear una tabla de lectura o escritura, y no hay necesidad de preocuparse de que GaussDB (DWS) no actualice la definición de la tabla a tiempo cuando cambia la definición de la tabla hive/spark.

Este artículo describe principalmente la configuración y orientación de la conexión entre GaussDB (DWS) y hivememtastore.

2. Breve análisis de principios

2.1 ¿Qué es HiveMetaStore?

HiveMeatStore es un componente clave de Apache Hive. Es un repositorio de metadatos que se utiliza para administrar la información de metadatos de las tablas de Hive/spark. HiveMeatStore almacena la información estructural de la tabla de Hive, incluido el nombre de la tabla, el nombre de la columna, el tipo de datos, la información de la partición, etc. También almacena la información de ubicación de la tabla, es decir, dónde se almacenan los datos de la tabla. La función principal de HiveMeatStore es proporcionar servicios de metadatos para que Hive/Spark pueda consultar y analizar datos. También proporciona API que permiten a los desarrolladores acceder a los metadatos de las tablas mediante programación. En resumen, HiveMeatStore es un componente importante de Hive, que proporciona servicios de consulta y gestión de metadatos.

El esquema externo es el esquema externo que GaussDB (DWS) se conecta al servicio HiveMeatStore mediante la creación de un esquema externo y obtiene activamente los metadatos del objeto de tabla Hive/spark para cada consulta. No es necesario que el kernel GaussDB (DWS) obtenga los metadatos de la tabla Hive/Spark mediante la creación de una tabla externa.

2.2 La diferencia entre esquema externo y esquema

1. El esquema externo se utiliza principalmente para establecer una conexión con HiveMeatStore y obtener metadatos de objetos de tabla. Al crear un esquema externo, debe especificar los distintos valores de atributos necesarios para la conexión.

2 Después de crear el esquema ordinario, la información del esquema se registrará en pg_namespace. Después de crear el esquema externo, también se registrará en pg_namespace como el esquema ordinario. Puede distinguir si es un esquema externo o un esquema ordinario. el campo nsptype en pg_namespace.

ilustrar

Además de la información relevante almacenada en pg_namespace, la información de configuración relacionada con las conexiones de esquemas externos se registrará en pg_external_namespace.

ilustrar

3 Los objetos de tabla no son compatibles con el esquema externo. El objeto se crea en Hive o Spark y el esquema externo solo se usa para realizar operaciones DML.

2.3 Descripción del principio

El proceso de acoplamiento de GaussDB (DWS) con HiveMetaStore se muestra en la siguiente figura

1. Crear servidor, esquema externo, consulta SQL.

Antes de utilizar esta función, los usuarios deberán crear un servidor. El proceso de creación de un servidor es el mismo que el de un servidor existente.

Hay dos formas de crear un servidor OBS. Una es crearlo a través de AK y SK permanentes. (La premisa de este método es que se pueden obtener AK y SK permanentes, pero este método no es seguro. AK/SK se exponen directamente en el archivo de configuración, y AK y SK deben ingresarse en texto claro al crear un servicio. No se recomienda crear servicios de esta manera).

Otro método para vincular DWS a ECS en la nube es acceder a OBS y crear un servidor OBS a través del plano de control. Para confiar la creación de un servidor a través del plano de control, consulte cómo crear un servidor OBS al crear una apariencia. https://support.huaweicloud.com/mgtg-dws/dws_01_1602.html

Crear esquema externo:

La sintaxis de creación de esquema externo es

CREAR esquema externo ex
CON colmena FUENTE
BASE DE DATOS 'predeterminada'
SERVIDOR hdfs_server
METADIRECCIÓN '10.254.159.121:9010'
CONFIGURACIÓN '/home/fengshuo/conf2';

El campo FUENTE especifica el tipo de motor de almacenamiento de metadatos externo, BASE DE DATOS es el nombre de la base de datos correspondiente en Hive, SERVIDOR es el servidor creado en el paso 1, METAADDRESS es la dirección y la información de puerto proporcionada por Hive y CONFIGURACIÓN es la ruta a Hive y Kerberos. archivos de configuración relacionados.

El objetivo del esquema externo es conectarse a metadatos externos (metadatos externos) para que DWS pueda percibir activamente cambios en los metadatos externos, como se muestra en la siguiente figura.

GaussDB (DWS) se conecta a HiveMetaStore a través de un esquema externo, se asigna a los metadatos de la tabla correspondiente y luego accede a Hadoop a través de la tabla.

Consulta SQL: el formato de consulta de selección es select * de ex.tbl, donde tbl es el nombre de la tabla fuente externa y ex es el esquema externo creado.

2. Análisis gramatical: la capa de análisis gramatical es la principal responsable del análisis y es la principal responsable de los siguientes contenidos:

Después de leer la tabla ex.tbl, conéctese a HMS para consultar metadatos

3. Consulta de metadatos: consulta la información de metadatos de HMS. Este paso se completa en el paso 1.

La lectura de datos de HMS incluye principalmente información de columnas, información de partición, información de clave de partición, información de delimitador, etc.

4. Consulta de datos (para selección): obtenga la cantidad y el tamaño de los archivos de información estadística del almacenamiento DFS para proporcionar una base para la generación del plan.

5. Reescritura de consultas, optimización de consultas, ejecución de consultas.

6. Entrega de consultas: envíe los metadatos al DN junto con el plan. Una vez que el DN reciba el plan, decodificará los metadatos y los insertará en SysCache.

7. Ejecución de la consulta: DN accede al archivo obs correspondiente y ejecuta la consulta.

3. Proceso de interconexión con hivememtastore

3.1 Preparar el medio ambiente

Se han creado el clúster DWS 3.0 y el clúster de análisis MRS. Debe asegurarse de que los clústeres MRS y DWS estén en la misma región, zona de disponibilidad y subred de VPC para garantizar la interoperabilidad de la red del clúster.

Obtuvo AK y SK.

3.2 Cree la tabla que debe conectarse en el lado de la colmena

1. En la ruta /opt/client, importe las variables de entorno.
fuente bigdata_env

2. Inicie sesión en el cliente de Hive.

3. Ejecute las siguientes instrucciones SQL en secuencia para crear la base de datos de demostración y la tabla de destino product_info.
CREAR BASE DE DATOS demostración;
utilizar demostración;
DROP TABLE product_info;
 
CREAR TABLA info_producto
(    
    precio_producto int,
    id_producto char(30),
    fecha_hora_del_producto,
    nivel_producto char(10),
    nombre_producto varchar(200),
    tipo_producto1 varchar(20),
    tipo_producto2 carácter(10),
    product_monthly_sales_cnt int,
    producto_comment_time fecha,
    núm_comentario_producto int,
    producto_comentario_content varchar(200)                   
)
campos delimitados en formato de fila terminados en ','
almacenado como orco;
4. Importe datos a la tabla de la colmena mediante inserción

3.3 Crear servidor externo

Utilice Data Studio para conectarse al clúster DWS creado.

Hay dos formatos admitidos en el lado MRS, hdfs y obs. Las formas de crear servidores externos para el acoplamiento de colmena en estos dos escenarios también son diferentes.

Ejecute las siguientes instrucciones para crear un servidor externo OBS.

CREAR SERVIDOR obs_servevr ENVOLTORIO DE DATOS EXTRANJEROS DFS_FDW
OPCIONES
(
dirección 'obs.xxx.com:5443', //Dirección de acceso OBS.
cifrar 'activado',
clave_acceso '{valor AK}',
clave_acceso_secreta '{valor SK}',
 escribe 'observaciones'
);
Ejecute las siguientes instrucciones para crear un servidor externo HDFS.
CREAR SERVIDOR hdfs_server ENVOLTURA DE DATOS EXTRANJEROS OPCIONES HDFS_FDW (
      TIPO "hdfs",
      DIRECCIÓN '{nodo primario},{nodo en espera}',
      HDFSCFGPATH '{dirección del archivo de configuración hdfs}');

Codificar las AK y SK utilizadas para la autenticación en el código o almacenarlas en texto sin formato tiene grandes riesgos de seguridad. Se recomienda almacenarlas en texto cifrado en el archivo de configuración o variable de entorno y descifrarlas cuando se utilicen para garantizar la seguridad. Además, dws cifrará sk internamente, por lo que no hay necesidad de preocuparse de que sk se filtre durante la transmisión.

Verifique el servidor externo (obs como ejemplo).
SELECCIONE * DESDE pg_foreign_server DONDE srvname='obs_server';

El resultado devuelto es el siguiente, lo que indica que se ha creado correctamente:

nombre de servicio | propietario | srvfdw | tipo de servicio | versión srv | srvacl | srvociones
-------------------------------------------------- +----------+--------+---------+------------+------ --+----------------------------------------------- -------------------------------------------------- --------------------
 servidor_obs | 16476 | 14337 | | | | {dirección=obs.xxx.com:5443,tipo=obs,encrypt=on,access_key=***,secret_access_key=***}
(1 fila)

3.4 Crear ESQUEMA EXTERNO

Obtenga la IP interna y el puerto del servicio de metastore de Hive y el nombre de la base de datos del lado de Hive a la que se accederá.

Inicie sesión en la consola de administración de MRS.

Seleccione "Lista de clústeres> Clúster existente", haga clic en el nombre del clúster que desea ver e ingrese a la página de información básica del clúster.

Haga clic en "Ir al administrador" en la oficina de administración de operación y mantenimiento e ingrese su nombre de usuario y contraseña para iniciar sesión en la página de administración de FI.

Haga clic en "Clúster", "Hive", "Configuración", "Todas las configuraciones", "MetaStore" y "Puerto" en orden y registre el valor correspondiente al parámetro hive.metastore.port.

Haga clic en "Clúster", "Hive" e "Instancia" en secuencia y registre la IP de administración del nombre de host correspondiente a MetaStore que contiene master1.

CREAR ESQUEMA EXTERNO

// Escenario OBS de acoplamiento de Hive: el nombre del SERVIDOR completa el nombre del servidor externo creado en 2, BASE DE DATOS completa la base de datos creada en el lado de Hive, METAADDRESS completa la dirección y el puerto del servicio de metastore del lado de Hive registrado en 1, CONFIGURACIÓN es el Ruta de configuración predeterminada de la fuente de datos MRS. No se requieren cambios.
BORRAR ESQUEMA SI EXISTE ex1;
 
CREAR ESQUEMA EXTERNO ex1
    CON colmena FUENTE
         BASE DE DATOS 'demostración'
         SERVIDOR servidor_obs
         METADIRECCIÓN '***.***.***.***:***'
         CONFIGURACIÓN '/MRS/gaussdb/mrs_server'
 
// Escenario HDFS de acoplamiento de Hive: el nombre del SERVIDOR completa el nombre de la fuente de datos mrs_server creado al crear la conexión de la fuente de datos MRS, METAADDRESS completa la dirección y el puerto del servicio de metastore del lado de la colmena registrado en 1, CONFIGURACIÓN es la ruta de configuración predeterminada de la fuente de datos MRS, no es necesario cambiarla.
BORRAR ESQUEMA SI EXISTE ex1;
 
CREAR ESQUEMA EXTERNO ex1
    CON colmena FUENTE
         BASE DE DATOS 'demostración'
         SERVIDOR señora_servidor
         METADIRECCIÓN '***.***.***.***:***'
         CONFIGURACIÓN '/MRS/gaussdb/mrs_server'

Ver el ESQUEMA EXTERNO creado

SELECCIONE * DESDE pg_namespace DONDE nspname='ex1';
SELECCIONE * DESDE pg_external_namespace DONDE nspid = (SELECCIONE oid DESDE pg_namespace DONDE nspname = 'ex1');
                     náspido | nombre de servicio | fuente | dirección | base de datos | ruta de configuración | opciones | catalogar
-------------------------------------------------- +----------+--------+---------+------------+------ --+----------------------------------------------- -------------------------------------------------- --------------------
                  16393 | servidor_obs | colmena | ***.***.***.***:*** | demostración | *** | |
(1 fila)

3.5 Ejecutar la importación de datos en la tabla de colmena

Cree una tabla de fuente de datos local, la estructura de la tabla es consistente con la colmena
SOLTAR TABLA SI EXISTE product_info_export;
CREAR TABLA product_info_export
(
    precio_producto entero,
    id_producto char(30),
    fecha_hora_del_producto,
    nivel_producto char(10),
    nombre_producto varchar(200),
    tipo_producto1 varchar(20),
    tipo_producto2 carácter(10),
    product_monthly_sales_cnt entero,
    producto_comment_time fecha,
    producto_comment_num entero,
    producto_comentario_content varchar(200)                   
) ;

Datos de importacion

Importe tablas de Hive desde tablas de origen locales.

INSERTAR EN ex1.product_info SELECCIONAR * DESDE product_info_export;

3.6 Los datos de ejecución se importan de Hive a la tabla dws

Datos de importacion

Importe tablas de Hive desde tablas de origen locales.

INSERTAR EN product_info_orc_export SELECCIONAR * DE ex1.product_info;

4 Resumen

Este artículo explica principalmente los principios y métodos del acoplamiento de GaussDB (DWS) con hiveMetaStore.

Haga clic para seguir y conocer las nuevas tecnologías de Huawei Cloud lo antes posible ~

Linus tomó el asunto en sus propias manos para evitar que los desarrolladores del kernel reemplacen las pestañas con espacios. Su padre es uno de los pocos líderes que puede escribir código, su segundo hijo es el director del departamento de tecnología de código abierto y su hijo menor es un núcleo. Colaborador de código abierto Huawei: tomó 1 año convertir 5000 aplicaciones móviles de uso común Migración completa a Hongmeng Java es el lenguaje más propenso a vulnerabilidades de terceros Wang Chenglu, el padre de Hongmeng: el código abierto Hongmeng es la única innovación arquitectónica. En el campo del software básico en China, Ma Huateng y Zhou Hongyi se dan la mano para "eliminar rencores". Ex desarrollador de Microsoft: el rendimiento de Windows 11 es "ridículamente malo " " Aunque lo que Laoxiangji es de código abierto no es el código, las razones detrás de él. Son muy conmovedores. Meta Llama 3 se lanza oficialmente. Google anuncia una reestructuración a gran escala.
{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/4526289/blog/11054552
Recomendado
Clasificación