Dieser Artikel wurde von der Huawei Cloud Community geteilt: „ Verbindung mit HiveMetaStore herstellen und Open-Source-Big-Data nutzen “. Autor: Schlafen ist eine große Sache.
1. Einleitung
-
Anwendbare Versionen: 9.1.0 und höher
Im Zeitalter der Big-Data-Fusion-Analyse ist die Leistung angesichts riesiger Datenmengen und verschiedener komplexer Abfragen der wichtigste Gesichtspunkt beim Einsatz einer Datenverarbeitungs-Engine. Der GaussDB-Dienst (DWS) verfügt über eine leistungsstarke Computer-Engine. Seine Rechenleistung ist besser als die von Computer-Engines wie Hive oder Spark im MRS-Dienst und kann die hohen Elastizitäts- und Agilitätsanforderungen des Unternehmens zu geringeren Kosten erfüllen. Durch die Verknüpfung mit MRS entfällt die Notwendigkeit, Daten zu verlagern. Die Verwendung der Hochleistungs-Computing-Engine von DWS zur Verarbeitung und Analyse großer Datenmengen im Data Lake sowie verschiedener komplexer Abfragedienste und Analysedienste wird zunehmend zu einer Mainstream-Lösung .
Wir können eine Verbindung zum HiveMetaStore-Metadatendienst herstellen, indem wir ein externes Schema erstellen, sodass GaussDB (DWS) die Hive-/Spark-Tabelle direkt abfragen oder Daten in die Hive-/Spark-Tabelle einfügen kann. Es besteht keine Notwendigkeit, eine Lese- oder Schreibtabelle zu erstellen, und Sie müssen sich keine Sorgen machen, dass GaussDB (DWS) die Tabellendefinition nicht rechtzeitig aktualisiert, wenn sich die Definition der Hive-/Spark-Tabelle ändert.
Dieser Artikel beschreibt hauptsächlich die Konfiguration und Anleitung der Verbindung zwischen GaussDB (DWS) und hivememtastore.
2. Kurze Analyse der Prinzipien
2.1 Was ist HiveMetaStore?
HiveMeatStore ist eine Schlüsselkomponente von Apache Hive. Es handelt sich um ein Metadaten-Repository, das zur Verwaltung von Metadateninformationen von Hive-/Spark-Tabellen verwendet wird. HiveMeatStore speichert die Strukturinformationen der Hive-Tabelle, einschließlich Tabellenname, Spaltenname, Datentyp, Partitionsinformationen usw. Es speichert auch die Standortinformationen der Tabelle, also den Ort, an dem die Tabellendaten gespeichert sind. Die Hauptfunktion von HiveMeatStore besteht darin, Metadatendienste bereitzustellen, damit Hive/Spark Daten abfragen und analysieren kann. Es stellt außerdem APIs bereit, die es Entwicklern ermöglichen, programmgesteuert auf Tabellenmetadaten zuzugreifen. Kurz gesagt, HiveMeatStore ist eine wichtige Komponente von Hive, die Metadatenverwaltungs- und Abfragedienste bereitstellt.
Beim externen Schema handelt es sich um das externe Schema, das GaussDB (DWS) durch die Erstellung eines externen Schemas mit dem HiveMeatStore-Dienst verbindet und für jede Abfrage aktiv die Metadaten des Hive-/Spark-Tabellenobjekts abruft. Es ist nicht erforderlich, dass der GaussDB (DWS)-Kernel die Metadaten der Hive-/Spark-Tabelle durch Erstellen einer Fremdtabelle erhält.
2.2 Der Unterschied zwischen externem Schema und Schema
1 Externes Schema wird hauptsächlich zum Herstellen einer Verbindung mit HiveMeatStore und zum Abrufen von Tabellenobjektmetadaten verwendet. Beim Erstellen eines externen Schemas müssen Sie die verschiedenen für die Verbindung erforderlichen Attributwerte angeben.
2 Nachdem das gewöhnliche Schema erstellt wurde, werden die Schemainformationen in pg_namespace aufgezeichnet. Nachdem das externe Schema erstellt wurde, wird es wie das gewöhnliche Schema auch in pg_namespace aufgezeichnet. Sie können durch unterscheiden, ob es sich um ein externes Schema oder ein gewöhnliches Schema handelt das nsptype-Feld in pg_namespace.
Zusätzlich zu den relevanten Informationen, die in pg_namespace gespeichert sind, werden Konfigurationsinformationen zu externen Schemaverbindungen in pg_external_namespace aufgezeichnet.
2.3 Prinzipbeschreibung
Der Prozess des Andockens von GaussDB (DWS) an HiveMetaStore ist in der folgenden Abbildung dargestellt
1. Erstellen Sie einen Server, ein externes Schema und eine SQL-Abfrage.
Bevor Sie diese Funktion nutzen können, müssen Benutzer einen Server erstellen. Der Vorgang zum Erstellen eines Servers ist derselbe wie bei einem vorhandenen Server.
Es gibt zwei Möglichkeiten, einen OBS-Server zu erstellen. Eine besteht darin, ihn über permanente AK und SK zu erstellen. (Die Voraussetzung dieser Methode ist, dass permanente AK und SK erhalten werden können, diese Methode ist jedoch nicht sicher. AK/SK werden direkt in der Konfigurationsdatei verfügbar gemacht, und AK und SK müssen beim Erstellen eines Dienstes im Klartext eingegeben werden. Es wird nicht empfohlen, Dienste auf diese Weise zu erstellen.
Eine weitere Methode zur Bindung von DWS an ECS in der Cloud besteht darin, auf OBS zuzugreifen und über die Steuerungsebene einen OBS-Server zu erstellen. Um die Erstellung eines Servers über die Steuerungsebene anzuvertrauen, lesen Sie bitte beim Erstellen eines Erscheinungsbilds die Anleitung zum Erstellen eines OBS-Servers. https://support.huaweicloud.com/mgtg-dws/dws_01_1602.html
Externes Schema erstellen:
Die Syntax für die Erstellung eines externen Schemas lautet
Externes Schema erstellen, z. B MIT QUELLE Bienenstock DATENBANK 'Standard' SERVER hdfs_server METAADRESSE '10.254.159.121:9010' KONFIGURATION '/home/fengshuo/conf2';
Das Feld SOURCE gibt den Typ der externen Metadatenspeicher-Engine an, DATABASE ist der entsprechende Datenbankname in Hive, SERVER ist der in Schritt 1 erstellte Server, METAADDRESS sind die von Hive bereitgestellten Adress- und Portinformationen und CONFIGURATION ist der Pfad zu Hive und Kerberos zugehörige Konfigurationsdateien.
Das Ziel des externen Schemas besteht darin, eine Verbindung zu externen Metadaten (Foreign Meta) herzustellen, damit DWS Änderungen in externen Metadaten aktiv wahrnehmen kann, wie in der folgenden Abbildung dargestellt.
GaussDB (DWS) stellt über ein externes Schema eine Verbindung zu HiveMetaStore her, ordnet es den entsprechenden Tabellenmetadaten zu und greift dann über die Tabelle auf Hadoop zu.
SQL-Abfrage: Das ausgewählte Abfrageformat ist „select * from ex.tbl“, wobei tbl der Name der fremden Quelltabelle und ex das erstellte externe Schema ist.
2. Grammatikanalyse: Die Grammatikanalyseschicht ist hauptsächlich für die Analyse verantwortlich und hauptsächlich für die folgenden Inhalte verantwortlich:
Stellen Sie nach dem Lesen der ex.tbl-Tabelle eine Verbindung zu HMS für die Metadatenabfrage her
3. Metadatenabfrage: Metadateninformationen von HMS abfragen. Dieser Schritt wird in Schritt 1 abgeschlossen.Das Lesen von Daten aus HMS umfasst hauptsächlich Spalteninformationen, Partitionsinformationen, Partitionsschlüsselinformationen, Trennzeicheninformationen usw.
4. Datenabfrage (zur Auswahl): Rufen Sie die Anzahl und Dateigröße der statistischen Informationsdateien aus dem DFS-Speicher ab, um eine Grundlage für die Planerstellung bereitzustellen.
5. Umschreiben von Abfragen, Optimierung von Abfragen, Ausführung von Abfragen
6. Abfragezustellung: Senden Sie die Metadaten zusammen mit dem Plan an den DN. Nachdem der DN den Plan erhalten hat, dekodiert er die Metadaten und fügt sie in SysCache ein.
7. Abfrageausführung: DN greift auf die obs-entsprechende Datei zu und führt die Abfrage aus.
3. Verbindungsprozess mit hivememtastore
3.1 Bereiten Sie die Umgebung vor
Der DWS 3.0-Cluster und der MRS-Analysecluster wurden erstellt. Sie müssen sicherstellen, dass sich die MRS- und DWS-Cluster in derselben Region, derselben Verfügbarkeitszone und demselben VPC-Subnetz befinden, um die Interoperabilität des Clusternetzwerks sicherzustellen.
AK und SK erhalten.3.2 Erstellen Sie den Tisch, der auf der Bienenstockseite angeschlossen werden muss
1. Importieren Sie im Pfad /opt/client die Umgebungsvariablen.Quelle bigdata_env
2. Melden Sie sich beim Hive-Client an.
3. Führen Sie die folgenden SQL-Anweisungen nacheinander aus, um die Demodatenbank und die Zieltabelle „product_info“ zu erstellen.CREATE DATABASE-Demo;
Demo verwenden;
DROP TABLE product_info; TABELLE „product_info“ ERSTELLEN ( produkt_preis int , Produkt-ID char(30) , Produkt_Uhrzeit Datum, Produktebene char(10) , Produktname varchar(200) , Produkttyp1 varchar(20) , Produkttyp2 char(10) , product_monthly_sales_cnt int , product_comment_time Datum, product_comment_num int , product_comment_content varchar(200) ) Durch Zeilenformat getrennte Felder, abgeschlossen durch „,“ als Ork gespeichert;4. Importieren Sie Daten durch Einfügen in die Hive-Tabelle
3.3 Externen Server erstellen
Verwenden Sie Data Studio, um eine Verbindung zum erstellten DWS-Cluster herzustellen.
Auf der MRS-Seite gibt es zwei unterstützte Formate: hdfs und obs. Auch die Möglichkeiten zum Erstellen externer Server für das Hive-Docking unterscheiden sich in diesen beiden Szenarien.
Führen Sie die folgenden Anweisungen aus, um einen externen OBS-Server zu erstellen.
ERSTELLEN SIE SERVER obs_servevr FOREIGN DATA WRAPPER DFS_FDW OPTIONEN ( Adresse 'obs.xxx.com:5443', //OBS-Zugriffsadresse. verschlüsseln 'ein', access_key '{AK-Wert}', Secret_access_key '{SK-Wert}', Geben Sie „obs“ ein );
Führen Sie die folgenden Anweisungen aus, um einen externen HDFS-Server zu erstellen.
SERVER ERSTELLEN hdfs_server FOREIGN DATA WRAPPER HDFS_FDW OPTIONEN ( TYP 'hdfs', ADRESSE '{primärer Knoten},{Standby-Knoten}', HDFSCFGPATH '{Adresse der HDFS-Konfigurationsdatei}');
Das Festkodieren der für die Authentifizierung verwendeten AK und SK im Code oder deren Speicherung im Klartext birgt große Sicherheitsrisiken. Es wird empfohlen, sie als Chiffriertext in der Konfigurationsdatei oder Umgebungsvariablen zu speichern und sie bei Verwendung zu entschlüsseln, um die Sicherheit zu gewährleisten. Darüber hinaus verschlüsselt DWS SK intern, sodass Sie sich keine Sorgen machen müssen, dass SK während der Übertragung verloren geht.
Überprüfen Sie den externen Server (obs als Beispiel).SELECT * FROM pg_foreign_server WHERE srvname='obs_server';
Das Rückgabeergebnis lautet wie folgt und zeigt an, dass es erfolgreich erstellt wurde:
srvname | Eigentümer | srvfdw | srvtype | Serverversion | srvacl | srvoptionen -------------------------------------------------- +----------+--------+---------+------------+------ ---+-------------------------------- -------------------------------------------------- -------------------- obs_server | 16476 | 14337 | | | | {address=obs.xxx.com:5443,type=obs,encrypt=on,access_key=***,secret_access_key=***} (1 Reihe)
3.4 Erstellen Sie ein externes Schema
Rufen Sie die interne IP und den Port des Hive-Metastore-Dienstes sowie den Namen der Hive-seitigen Datenbank ab, auf die zugegriffen werden soll.
Melden Sie sich bei der MRS-Verwaltungskonsole an.
Wählen Sie „Clusterliste > Vorhandener Cluster“, klicken Sie auf den Namen des Clusters, den Sie anzeigen möchten, und rufen Sie die Seite mit den grundlegenden Clusterinformationen auf.
Klicken Sie im Betriebs- und Wartungsverwaltungsbüro auf „Zum Manager gehen“ und geben Sie Ihren Benutzernamen und Ihr Passwort ein, um sich auf der FI-Verwaltungsseite anzumelden.
Klicken Sie der Reihe nach auf „Cluster“, „Hive“, „Konfiguration“, „Alle Konfigurationen“, „MetaStore“ und „Port“ und notieren Sie den Wert, der dem Parameter hive.metastore.port entspricht.
Klicken Sie nacheinander auf „Cluster“, „Hive“ und „Instanz“ und notieren Sie die Verwaltungs-IP des Hostnamens, der dem MetaStore entspricht, der „master1“ enthält.
EXTERNES SCHEMA ERSTELLEN
//Hive-Docking-OBS-Szenario: SERVER-Name trägt den in 2 erstellten externen Servernamen ein, DATABASE trägt die auf der Hive-Seite erstellte Datenbank ein, METAADDRESS trägt die Adresse und den Port des in 1 aufgezeichneten Hive-seitigen Metastore-Dienstes ein, KONFIGURATION ist die Standardkonfigurationspfad der MRS-Datenquelle. Es sind keine Änderungen erforderlich. DROP SCHEMA IF EXISTS ex1; EXTERNES SCHEMA ERSTELLEN ex1 MIT QUELLE Bienenstock DATENBANK 'Demo' SERVER obs_server METAADRESSE '***.***.***.***:***' KONFIGURATION '/MRS/gaussdb/mrs_server' //Hive-Docking-HDFS-Szenario: SERVER-Name füllt den Datenquellennamen mrs_server aus, der durch Erstellen der MRS-Datenquellenverbindung erstellt wurde, METAADDRESS füllt die Adresse und den Port des in 1 aufgezeichneten Hive-seitigen Metastore-Dienstes aus, KONFIGURATION ist der Standardkonfigurationspfad von Die MRS-Datenquelle muss nicht geändert werden. DROP SCHEMA IF EXISTS ex1; EXTERNES SCHEMA ERSTELLEN ex1 MIT QUELLE Bienenstock DATENBANK 'Demo' SERVER mrs_server METAADRESSE '***.***.***.***:***' KONFIGURATION '/MRS/gaussdb/mrs_server'
Sehen Sie sich das erstellte EXTERNE SCHEMA an
SELECT * FROM pg_namespace WHERE nspname='ex1'; SELECT * FROM pg_external_namespace WHERE nspid = (SELECT oid FROM pg_namespace WHERE nspname = 'ex1'); nspid | srvname | Quelle | Adresse | Datenbank | confpath | enoptionen | Katalog -------------------------------------------------- +----------+--------+---------+------------+------ ---+-------------------------------- -------------------------------------------------- -------------------- 16393 | obs_server | Bienenstock | ***.***.***.***:*** | Demo | *** | | (1 Reihe)
3.5 Führen Sie den Datenimport in die Hive-Tabelle aus
Erstellen Sie eine lokale Datenquellentabelle. Die Tabellenstruktur stimmt mit Hive übereinDROP TABLE IF EXISTS product_info_export; TABELLE product_info_export ERSTELLEN ( Produktpreis Ganzzahl, Produkt-ID char(30) , Produkt_Uhrzeit Datum, Produktebene char(10) , Produktname varchar(200) , Produkttyp1 varchar(20) , Produkttyp2 char(10) , product_monthly_sales_cnt Ganzzahl , product_comment_time Datum, Produktkommentarnummer Ganzzahl , product_comment_content varchar(200) );
Daten importieren
Importieren Sie Hive-Tabellen aus lokalen Quelltabellen.
INSERT INTO ex1.product_info SELECT * FROM product_info_export;
3.6 Ausführungsdaten werden vom Hive in die DWS-Tabelle importiert
Daten importieren
Importieren Sie Hive-Tabellen aus lokalen Quelltabellen.
INSERT INTO product_info_orc_export SELECT * FROM ex1.product_info;
4 Zusammenfassung
In diesem Artikel werden hauptsächlich die Prinzipien und Methoden des Andockens von GaussDB (DWS) an hiveMetaStore erläutert.