Connectez-vous à HiveMetaStore et adoptez le Big Data open source

Cet article est partagé par la communauté Huawei Cloud « Se connecter à HiveMetaStore et adopter le Big Data open source ». Auteur : Dormir est une grosse affaire.

1. Introduction

  • Versions applicables : 9.1.0 et supérieures

À l’ère de l’analyse de fusion de Big Data, face à des quantités massives de données et à diverses requêtes complexes, les performances sont la considération la plus importante lors de l’utilisation d’un moteur de traitement de données. Le service GaussDB (DWS) dispose d'un moteur de calcul puissant. Ses performances de calcul sont meilleures que celles des moteurs de calcul tels que Hive ou Spark dans le service MRS, et il peut répondre aux besoins élevés d'élasticité et d'agilité de l'entreprise à moindre coût. En se connectant à MRS, il n'est pas nécessaire de déplacer les données. L'utilisation du moteur de calcul haute performance de DWS pour traiter et analyser des données massives dans le lac de données, ainsi que divers services de requêtes et d'analyse complexes, devient de plus en plus une solution courante. .

Nous pouvons nous connecter au service de métadonnées HiveMetaStore en créant un schéma externe, afin que GaussDB (DWS) puisse directement interroger la table hive/spark ou insérer des données dans la table hive/spark. Il n'est pas nécessaire de créer une table de lecture ou d'écriture, et il n'y a pas lieu de s'inquiéter du fait que GaussDB (DWS) ne mette pas à jour la définition de la table à temps lorsque la définition de la table ruche/spark change.

Cet article décrit principalement la configuration et le guidage de la connexion entre GaussDB (DWS) et hivememtastore.

2. Brève analyse des principes

2.1 Qu'est-ce que HiveMetaStore

HiveMeatStore est un composant clé d'Apache Hive. Il s'agit d'un référentiel de métadonnées utilisé pour gérer les informations de métadonnées des tables Hive/Spark. HiveMeatStore stocke les informations structurelles de la table Hive, notamment le nom de la table, le nom de la colonne, le type de données, les informations de partition, etc. Il stocke également les informations d'emplacement de la table, c'est-à-dire l'endroit où les données de la table sont stockées. La fonction principale de HiveMeatStore est de fournir des services de métadonnées afin que Hive/Spark puisse interroger et analyser les données. Il fournit également des API qui permettent aux développeurs d'accéder aux métadonnées des tables par programme. En bref, HiveMeatStore est un composant important de Hive, qui fournit des services de gestion des métadonnées et de requêtes.

Le schéma externe est le schéma externe. GaussDB (DWS) se connecte au service HiveMeatStore en créant un schéma externe et obtient activement les métadonnées de l'objet table hive/spark pour chaque requête. Il n'est pas nécessaire que le noyau GaussDB (DWS) obtienne les métadonnées de la table hive/spark via la création d'une table étrangère.

2.2 Différence entre schéma externe et schéma

1. Le schéma externe est principalement utilisé pour établir une connexion avec HiveMeatStore et obtenir les métadonnées des objets de table. Lors de la création d'un schéma externe, vous devez spécifier les différentes valeurs d'attribut requises pour la connexion.

2 Une fois le schéma ordinaire créé, les informations du schéma seront enregistrées dans pg_namespace. Une fois le schéma externe créé, elles seront également enregistrées dans pg_namespace comme le schéma ordinaire. Vous pouvez distinguer s'il s'agit d'un schéma externe ou d'un schéma ordinaire. le champ nsptype dans pg_namespace.

illustrer

En plus des informations pertinentes stockées dans pg_namespace, les informations de configuration liées aux connexions de schéma externes seront enregistrées dans pg_external_namespace.

illustrer

3 Les objets table ne sont pas pris en charge sous le schéma externe. L'objet est créé dans Hive ou Spark, et le schéma externe est uniquement utilisé pour effectuer des opérations DML.

2.3 Description du principe

Le processus d'amarrage de GaussDB (DWS) avec HiveMetaStore est illustré dans la figure ci-dessous.

1. Créer un serveur, un schéma externe, une requête SQL.

Avant d'utiliser cette fonctionnalité, les utilisateurs devront créer un serveur. Le processus de création d'un serveur est le même que celui d'un serveur existant.

Il existe deux façons de créer un serveur OBS. La première consiste à le créer via AK et SK permanents. (Le principe de cette méthode est que AK et SK permanents peuvent être obtenus, mais cette méthode n'est pas sûre. AK/SK sont directement exposés dans le fichier de configuration, et AK et SK doivent être saisis en texte clair lors de la création d'un service. Il n'est pas recommandé de créer des services de cette manière.)

Une autre méthode pour lier DWS à ECS sur le cloud consiste à accéder à OBS et à créer un serveur OBS via le plan de contrôle. Pour confier la création d'un serveur via le plan de contrôle, veuillez vous référer à la façon de créer un serveur OBS lors de la création d'une apparence. https://support.huaweicloud.com/mgtg-dws/dws_01_1602.html

Créez un schéma externe :

La syntaxe de création de schéma externe est

CRÉER un schéma externe ex
AVEC ruche SOURCE
BASE DE DONNÉES 'par défaut'
SERVEUR hdfs_server
MÉTA-ADRESSE '10.254.159.121:9010'
CONFIGURATION '/home/fengshuo/conf2';

Le champ SOURCE spécifie le type de moteur de stockage de métadonnées externe, DATABASE est le nom de la base de données correspondant dans Hive, SERVER est le serveur créé à l'étape 1, METAADDRESS est l'adresse et les informations de port fournies par Hive et CONFIGURATION est le chemin d'accès à Hive et Kerberos. fichiers de configuration associés.

L'objectif du schéma externe est de se connecter aux métadonnées externes (Foreign Meta) afin que DWS puisse percevoir activement les changements dans les métadonnées externes, comme le montre la figure ci-dessous.

GaussDB (DWS) se connecte à HiveMetaStore via un schéma externe, mappe les métadonnées de la table correspondante, puis accède à Hadoop via la table.

Requête SQL : le format de requête de sélection est select * from ex.tbl, où tbl est le nom de la table source étrangère et ex est le schéma externe créé.

2. Analyse grammaticale : la couche d'analyse grammaticale est principalement responsable de l'analyse et est principalement responsable du contenu suivant :

Après avoir lu la table ex.tbl, connectez-vous à HMS pour une requête de métadonnées

3. Requête de métadonnées : interroger les informations de métadonnées auprès de HMS. Cette étape est terminée à l'étape 1.

La lecture des données à partir du HMS comprend principalement les informations sur les colonnes, les informations sur les partitions, les informations sur les clés de partition, les informations sur les délimiteurs, etc.

4. Requête de données (pour sélection) : obtenez le nombre et la taille des fichiers d'informations statistiques à partir du stockage DFS pour fournir une base pour la génération du plan.

5. Réécriture de requêtes, optimisation de requêtes, exécution de requêtes

6. Livraison de la requête : envoyez les métadonnées au DN avec le plan. Une fois que le DN a reçu le plan, il décodera les métadonnées et les insérera dans SysCache.

7. Exécution de la requête : DN accède au fichier obs correspondant et exécute la requête.

3. Processus d'interconnexion avec hivememtastore

3.1 Préparer l'environnement

Le cluster DWS 3.0 et le cluster d'analyse MRS ont été créés. Vous devez vous assurer que les clusters MRS et DWS se trouvent dans la même région, zone de disponibilité et sous-réseau VPC pour garantir l'interopérabilité du réseau du cluster ;

Obtenu AK et SK.

3.2 Créer la table qui doit être connectée côté ruche

1. Dans le chemin /opt/client, importez les variables d'environnement.
source bigdata_env

2. Connectez-vous au client Hive.

3. Exécutez les instructions SQL suivantes dans l'ordre pour créer la base de données de démonstration et la table cible product_info.
Démo CRÉER UNE BASE DE DONNÉES ;
utiliser la démo ;
DROP TABLE info_produit ;
 
CREATE TABLE info_produit
(    
    produit_prix int ,
    product_id char(30) ,
    date_heure_produit,
    niveau_produit char(10) ,
    nom_produit varchar(200) ,
    type_produit1 varchar(20) ,
    product_type2 char(10) ,
    product_monthly_sales_cnt int ,
    product_comment_time date ,
    produit_comment_num int ,
    produit_comment_content varchar(200)                   
)
champs délimités au format de ligne terminés par ','
stocké en tant qu'orc;
4. Importez des données dans la table de la ruche via insertion

3.3 Créer un serveur externe

Utilisez Data Studio pour vous connecter au cluster DWS créé.

Il existe deux formats pris en charge du côté MRS, hdfs et obs. Les manières de créer des serveurs externes pour l’accueil de ruche dans ces deux scénarios sont également différentes.

Exécutez les instructions suivantes pour créer un serveur externe OBS.

CRÉER UN SERVEUR obs_servevr WRAPPER DE DONNÉES ÉTRANGÈRES DFS_FDW
OPTIONS
(
adresse 'obs.xxx.com:5443', //adresse d'accès OBS.
chiffrer 'on',
access_key '{Valeur AK}',
secret_access_key '{Valeur SK}',
 tapez "obs"
);
Exécutez les instructions suivantes pour créer un serveur externe HDFS.
CRÉER UN SERVEUR hdfs_server OPTIONS D'ENVELOPPEMENT DE DONNÉES ÉTRANGÈRES HDFS_FDW (
      TYPE 'hdfs',
      ADRESSE '{nœud principal},{nœud de secours}',
      HDFSCFGPATH '{adresse du fichier de configuration hdfs}');

Le codage en dur des AK et SK utilisés pour l'authentification dans le code ou leur stockage en texte brut présente de grands risques de sécurité. Il est recommandé de les stocker sous forme de texte chiffré dans le fichier de configuration ou la variable d'environnement, et de les déchiffrer lorsqu'ils sont utilisés pour garantir la sécurité. De plus, dws chiffrera sk en interne, il n'y a donc pas lieu de s'inquiéter d'une fuite de sk pendant la transmission.

Vérifiez le serveur externe (obs à titre d'exemple).
SELECT * FROM pg_foreign_server WHERE srvname='obs_server';

Le résultat renvoyé est le suivant, indiquant qu'il a été créé avec succès :

nom du serveur | propriétaire | srvfdw | type srv | versionserv | srvacl | options srv
-------------------------------------------------- +--------------+--------+---------+------------+------ ---+---------------------------------------------- -------------------------------------------------- --------------------
 obs_serveur | 16476 | 14337 | | | | {address=obs.xxx.com:5443,type=obs,encrypt=on,access_key=***,secret_access_key=***}
(1 rangée)

3.4 Créer un SCHÉMA EXTERNE

Obtenez l'adresse IP interne et le port du service métastore de Hive ainsi que le nom de la base de données côté Hive à laquelle accéder.

Connectez-vous à la console de gestion MRS.

Sélectionnez « Liste des clusters > Cluster existant », cliquez sur le nom du cluster que vous souhaitez afficher et accédez à la page d'informations de base du cluster.

Cliquez sur « Aller au gestionnaire » dans le bureau de gestion de l'exploitation et de la maintenance, et entrez votre nom d'utilisateur et votre mot de passe pour vous connecter à la page de gestion FI.

Cliquez sur "Cluster", "Hive", "Configuration", "All Configurations", "MetaStore" et "Port" dans l'ordre, et enregistrez la valeur correspondant au paramètre hive.metastore.port.

Cliquez sur « Cluster », « Hive » et « Instance » dans l'ordre et enregistrez l'adresse IP de gestion du nom d'hôte correspondant au MetaStore qui contient master1.

CRÉER UN SCHÉMA EXTERNE

//Scénario OBS d'amarrage Hive : SERVER name renseigne le nom du serveur externe créé en 2, DATABASE renseigne la base de données créée côté Hive, METAADDRESS renseigne l'adresse et le port du service métastore côté ruche enregistré en 1, CONFIGURATION est le chemin de configuration par défaut de la source de données MRS, aucune modification n'est requise.
SUPPRIMER LE SCHÉMA SI EXISTE ex1 ;
 
CRÉER UN SCHÉMA EXTERNE ex1
    AVEC ruche SOURCE
         BASE DE DONNÉES 'démo'
         SERVEUR obs_server
         MÉTA-ADRESSE '***.***.***.***:***'
         CONFIGURATION '/MRS/gaussdb/mrs_server'
 
//Scénario HDFS d'amarrage de ruche : le nom du SERVEUR remplit le nom de la source de données mrs_server créé en créant la connexion à la source de données MRS, METAADDRESS remplit l'adresse et le port du service métastore côté ruche enregistré en 1, CONFIGURATION est le chemin de configuration par défaut de la source de données MRS, pas besoin de la modifier.
SUPPRIMER LE SCHÉMA SI EXISTE ex1 ;
 
CRÉER UN SCHÉMA EXTERNE ex1
    AVEC ruche SOURCE
         BASE DE DONNÉES 'démo'
         SERVEUR mrs_server
         MÉTA-ADRESSE '***.***.***.***:***'
         CONFIGURATION '/MRS/gaussdb/mrs_server'

Afficher le SCHÉMA EXTERNE créé

SELECT * FROM pg_namespace WHERE nspname='ex1';
SELECT * FROM pg_external_namespace WHERE nspid = (SELECT oid FROM pg_namespace WHERE nspname = 'ex1');
                     nspid | nom du serveur | source | adresse | base de données | chemin de configuration | ensoptions | catalogue
-------------------------------------------------- +--------------+--------+---------+------------+------ ---+---------------------------------------------- -------------------------------------------------- --------------------
                  16393 | obs_serveur | ruche | ***.***.***.***:*** | démo | *** | |
(1 rangée)

3.5 Exécuter l'importation de données dans la table Hive

Créez une table de source de données locale, la structure de la table est cohérente avec la ruche
SUPPRIMER LA TABLE SI EXISTE product_info_export ;
CRÉER TABLE product_info_export
(
    product_price entier ,
    product_id char(30) ,
    date_heure_produit,
    niveau_produit char(10) ,
    nom_produit varchar(200) ,
    type_produit1 varchar(20) ,
    product_type2 char(10) ,
    product_monthly_sales_cnt entier ,
    product_comment_time date ,
    product_comment_num entier ,
    produit_comment_content varchar(200)                   
) ;

Importer des données

Importez des tables Hive à partir de tables sources locales.

INSERT INTO ex1.product_info SELECT * FROM product_info_export;

3.6 Les données d'exécution sont importées de la ruche vers la table dws

Importer des données

Importez des tables Hive à partir de tables sources locales.

INSERT INTO product_info_orc_export SELECT * FROM ex1.product_info;

4 Résumé

Cet article explique principalement les principes et méthodes d'amarrage de GaussDB (DWS) avec hiveMetaStore.

Cliquez pour suivre et découvrir les nouvelles technologies de Huawei Cloud dès que possible~

Linus a pris les choses en main pour empêcher les développeurs du noyau de remplacer les tabulations par des espaces. Son père est l'un des rares dirigeants capables d'écrire du code, son deuxième fils est directeur du département de technologie open source et son plus jeune fils est un noyau. contributeur à l'open source. Huawei : Il a fallu 1 an pour convertir 5 000 applications mobiles couramment utilisées Migration complète vers Hongmeng Java est le langage le plus sujet aux vulnérabilités tierces Wang Chenglu, le père de Hongmeng : l'open source Hongmeng est la seule innovation architecturale. dans le domaine des logiciels de base en Chine, Ma Huateng et Zhou Hongyi se serrent la main pour « éliminer les rancunes ». Ancien développeur de Microsoft : les performances de Windows 11 sont « ridiculement mauvaises » " Bien que ce que Laoxiangji est open source, ce ne soit pas le code, les raisons qui le sous-tendent. sont très réconfortants. Meta Llama 3 est officiellement publié. Google annonce une restructuration à grande échelle.
{{o.name}}
{{m.nom}}

Je suppose que tu aimes

Origine my.oschina.net/u/4526289/blog/11054552
conseillé
Classement