Verwenden von externen Metadatenspeichern in Azure HDInsightUse external metadata stores in Azure HDInsight

Mit HDInsight behalten Sie durch die Bereitstellung wichtiger Metadatenlösungen und Verwaltungsdatenbanken für externe Datenspeicher die Kontrolle über Ihre Daten und Metadaten.HDInsight allows you to take control of your data and metadata by deploying key metadata solutions and management databases to external data stores. Dieses Feature ist derzeit für Apache Hive-Metastore, Apache Oozie-Metastore und Apache Ambari-Datenbank verfügbar.This feature is currently available for Apache Hive metastore, Apache Oozie metastore and Apache Ambari database.

Der Apache Hive-Metastore in HDInsight ist ein wesentlicher Bestandteil der Apache Hadoop-Architektur.The Apache Hive metastore in HDInsight is an essential part of the Apache Hadoop architecture. Ein Metastore ist das zentrale Schemarepository, das von anderen Tools für den Zugriff auf Big Data wie Apache Spark, Interactive Query (LLAP), Presto oder Apache Pig verwendet werden kann.A metastore is the central schema repository that can be used by other big data access tools such as Apache Spark, Interactive Query (LLAP), Presto, or Apache Pig. HDInsight verwendet eine Azure SQL-Datenbank als Hive-Metastore.HDInsight uses an Azure SQL Database as the Hive metastore.

Architektur des Hive-Metadatenspeichers in HDInsight

Sie können einen Metastore für Ihre HDInsight-Cluster auf zwei Arten einrichten:There are two ways you can set up a metastore for your HDInsight clusters:

StandardmetastoreDefault metastore

HDInsight erstellt standardmäßig einen Metastore für jeden Clustertyp.By default, HDInsight creates a metastore with every cluster type. Sie können stattdessen einen benutzerdefinierten Metastore angeben.You can instead specify a custom metastore. Beim Standardmetastore sind folgende Aspekte zu berücksichtigen:The default metastore includes the following considerations:

  • Keine zusätzlichen Kosten.No additional cost. HDInsight erstellt für jeden Clustertyp einen Metastore ohne zusätzliche Kosten.HDInsight creates a metastore with every cluster type without any additional cost to you.

  • Jeder Standardmetastore ist Teil des Clusterlebenszyklus.Each default metastore is part of the cluster lifecycle. Wenn Sie einen Cluster löschen, werden der entsprechende Metastore und die jeweiligen Metadaten ebenfalls gelöscht.When you delete a cluster, the corresponding metastore and metadata are also deleted.

  • Der Standardmetastore kann nicht für andere Cluster freigegeben werden.You can't share the default metastore with other clusters.

  • Der Standardmetastore verwendet die Azure SQL-Basisdatenbank, die auf fünf DTUs (Datenbankübertragungseinheiten) begrenzt ist.The default metastore uses the basic Azure SQL DB, which has a five DTU (database transaction unit) limit. Dieser Standardmetastore wird normalerweise für relativ einfache Arbeitslasten verwendet, für die weder mehrere Cluster noch eine Beibehaltung von Metadaten über den Lebenszyklus des Clusters hinaus erforderlich sind.This default metastore is typically used for relatively simple workloads that don't require multiple clusters and don’t need metadata preserved beyond the cluster's lifecycle.

Benutzerdefinierter MetastoreCustom metastore

HDInsight unterstützt auch benutzerdefinierte Metastores, der für Produktionscluster empfohlen werden:HDInsight also supports custom metastores, which are recommended for production clusters:

  • Sie geben Ihre eigene Azure SQL-Datenbank als Metastore an.You specify your own Azure SQL Database as the metastore.

  • Der Lebenszyklus des Metastore ist nicht an den Lebenszyklus eines Clusters gebunden, sodass Sie Cluster ohne Verlust von Metadaten erstellen und löschen können.The lifecycle of the metastore isn't tied to a clusters lifecycle, so you can create and delete clusters without losing metadata. Metadaten, wie z. B. Ihre Hive-Schemas, bleiben auch nach dem Löschen und erneuten Erstellen des HDInsight-Clusters erhalten.Metadata such as your Hive schemas will persist even after you delete and re-create the HDInsight cluster.

  • Ein benutzerdefinierter Metastore ermöglicht das Anfügen mehrerer Cluster und Clustertypen an diesen Metastore.A custom metastore lets you attach multiple clusters and cluster types to that metastore. Beispielsweise kann ein einzelner Metastore für Interactive Query-, Hive- und Spark-Cluster in HDInsight freigegeben werden.For example, a single metastore can be shared across Interactive Query, Hive, and Spark clusters in HDInsight.

  • Die Kosten für einen Metastore (Azure SQL-Datenbank) richten sich nach der von Ihnen ausgewählten Leistungsstufe.You pay for the cost of a metastore (Azure SQL DB) according to the performance level you choose.

  • Sie können den Metastore nach Bedarf zentral hochskalieren.You can scale up the metastore as needed.

Anwendungsfall für den Hive-Metadatenspeicher in HDInsight

Erstellen und Konfigurieren der Azure SQL-Datenbank für den benutzerdefinierten MetastoreCreate and config Azure SQL Database for the custom metastore

Vor dem Einrichten eines benutzerdefinierten Hive-Metastores für einen HDInsight-Cluster müssen Sie eine Azure SQL-Datenbank erstellen oder es muss bereits eine Azure SQL-Datenbank vorhanden sein.You need to create or have an existing Azure SQL Database before setting up a custom Hive metastore for a HDInsight cluster. Weitere Informationen finden Sie unter Quickstart: Erstellen einer Einzeldatenbank in Azure SQL-Datenbank.For more information, see Quickstart: Create a single database in Azure SQL DB.

Um sicherzustellen, dass Ihr HDInsight-Cluster auf die verbundene Azure SQL-Datenbank zugreifen kann, konfigurieren Sie Firewallregeln für die Azure SQL-Datenbank, sodass Azure-Dienste und -Ressourcen auf den Server zugreifen können.To make sure that your HDInsight cluster can access the connected Azure SQL Database, configure Azure SQL Database firewall rules to allow Azure services and resources to access the server.

Sie können diese Option im Azure-Portal aktivieren. Klicken Sie hierzu auf Serverfirewall festlegen und anschließend unter Anderen Azure-Diensten und -Ressourcen den Zugriff auf diesen Server gestatten für den Azure SQL-Datenbank-Server oder die Azure SQL-Datenbank auf EIN.You can enable this option in the Azure portal by clicking Set server firewall, and clicking ON underneath Allow Azure services and resources to access this server for the Azure SQL Database server or database. Weitere Informationen finden Sie unter IP-Firewallregeln für Azure SQL-Datenbank und Azure SQL Data Warehouse.For more information, see Create and manage IP firewall rules

Schaltfläche zum Festlegen der Serverfirewall

Zugriff auf Azure-Dienste zulassen

Auswählen eines benutzerdefinierten Metastore während der ClustererstellungSelect a custom metastore during cluster creation

Sie können den Cluster während der Erstellung auf eine zuvor erstellte Azure SQL-Datenbank verweisen, oder Sie können die SQL-Datenbank nach der Erstellung des Clusters konfigurieren.You can point your cluster to a previously created Azure SQL Database during cluster creation, or you can configure the SQL Database after the cluster is created. Diese Option wird unter Speicher > Metastore-Einstellungen beim Erstellen eines neuen Hadoop-, Spark- oder Interactive Hive-Clusters über das Azure-Portal angegeben.This option is specified with the Storage > Metastore settings while creating a new Hadoop, Spark, or interactive Hive cluster from Azure portal.

Azure-Portal für Hive-Metadatenspeicher in HDInsight

Bewährte Methoden für den Hive-MetastoreHive metastore best practices

Es folgen einige allgemeine bewährte Methoden für den Hive-Metastore in HDInsight:Here are some general HDInsight Hive metastore best practices:

  • Verwenden Sie wann immer möglich einen benutzerdefinierten Metastore, um das Trennen von Computeressourcen (Ihre ausgeführten Cluster) und Metadaten (im Metastore gespeichert) zu erleichtern.Use a custom metastore whenever possible, to help separate compute resources (your running cluster) and metadata (stored in the metastore).

  • Beginnen Sie mit einem S2-Tarif, der 50 DTUs und 250 GB Speicher bietet.Start with an S2 tier, which provides 50 DTU and 250 GB of storage. Wenn Sie einen Engpass feststellen, können Sie die Datenbank zentral hochskalieren.If you see a bottleneck, you can scale the database up.

  • Wenn Sie mehreren HDInsight-Clustern Zugriff auf separate Daten gewähren möchten, verwenden Sie für den Metastore auf jedem Cluster eine eigene Datenbank.If you intend multiple HDInsight clusters to access separate data, use a separate database for the metastore on each cluster. Wenn Sie einen Metastore für mehrere HDInsight-Cluster freigeben, bedeutet dies, dass die Cluster dieselben Metadaten und zugrunde liegenden Benutzerdatendateien verwenden.If you share a metastore across multiple HDInsight clusters, it means that the clusters use the same metadata and underlying user data files.

  • Sichern Sie Ihren benutzerdefinierten Metastore regelmäßig.Back up your custom metastore periodically. Die Azure SQL-Datenbank generiert Sicherungen automatisch, der Aufbewahrungszeitraum der Sicherungen variiert jedoch.Azure SQL Database generates backups automatically, but the backup retention timeframe varies. Weitere Informationen finden Sie unter Informationen zu automatischen Sicherungen von SQL-Datenbank.For more information, see Learn about automatic SQL Database backups.

  • Um eine bessere Leistung und möglichst geringe Kosten für ausgehenden Netzwerkdatenverkehr zu erzielen, sollten sich der Metastore und der HDInsight-Cluster in derselben Region befinden.Locate your metastore and HDInsight cluster in the same region, for highest performance and lowest network egress charges.

  • Überwachen Sie den Metastore in Hinblick auf Leistung und Verfügbarkeit. Verwenden Sie dazu Überwachungstools für die Azure SQL-Datenbank, wie z. B. das Azure-Portal oder Azure Monitor-Protokolle.Monitor your metastore for performance and availability using Azure SQL Database Monitoring tools, such as the Azure portal or Azure Monitor logs.

  • Wenn eine neue, höhere Version von Azure HDInsight anhand einer vorhandenen benutzerdefinierten Metastoredatenbank erstellt wird, aktualisiert das System das Metastoreschema unwiderruflich, ohne die Datenbank aus der Sicherung wiederherzustellen.When a new, higher version of Azure HDInsight is created against an existing custom metastore database, the system upgrades the schema of the metastore, which is irreversible without restoring the database from backup.

  • Falls Sie einen Metastore für mehrere Cluster freigeben, achten Sie darauf, dass alle Cluster die gleiche HDInsight-Version haben.If you share a metastore across multiple clusters, ensure all the clusters are the same HDInsight version. Verschiedene Hive-Versionen verwenden unterschiedliche Schemas der Metastoredatenbank.Different Hive versions use different metastore database schemas. So können Sie beispielsweise einen Metastore nicht für Hive 2.1- und Hive 3.1-Cluster freigeben.For example, you can't share a metastore across Hive 2.1 and Hive 3.1 versioned clusters.

  • In HDInsight 4.0 verwenden Spark und Hive unabhängige Kataloge für den Zugriff auf SparkSQL- oder Hive-Tabellen.In HDInsight 4.0, Spark and Hive use independent catalogs for accessing SparkSQL or Hive tables. Eine von Spark erstellte Tabelle befindet sich im Spark-Katalog.A table created by Spark resides in the Spark catalog. Eine von Hive erstellte Tabelle befindet sich im Hive-Katalog.A table created by Hive resides in the Hive catalog. Dies unterscheidet sich von HDInsight 3.6, wo in Hive und Spark der gleiche Katalog verwendet wurde.This is different than HDInsight 3.6 where Hive and Spark shared common catalog. Die Integration von Hive und Spark in HDInsight 4.0 basiert auf Hive Warehouse Connector (HWC).Hive and Spark Integration in HDInsight 4.0 relies on Hive Warehouse Connector (HWC). HWC funktioniert als Brücke zwischen Spark und Hive.HWC works as a bridge between Spark and Hive. Informationen zu Hive Warehouse Connector.Learn about Hive Warehouse Connector.

Apache Oozie-MetastoreApache Oozie metastore

Apache Oozie ist ein Koordinationssystem für Workflows zur Verwaltung von Hadoop-Aufträgen.Apache Oozie is a workflow coordination system that manages Hadoop jobs. Oozie unterstützt Hadoop-Aufträge für Apache MapReduce, Pig, Hive und andere.Oozie supports Hadoop jobs for Apache MapReduce, Pig, Hive, and others. Oozie verwendet einen Metastore zum Speichern von Details zu aktuellen und abgeschlossenen Workflows.Oozie uses a metastore to store details about current and completed workflows. Zur Leistungssteigerung bei Verwendung von Oozie können Sie eine Azure SQL-Datenbank als benutzerdefinierten Metastore verwenden.To increase performance when using Oozie, you can use Azure SQL Database as a custom metastore. Der Metastore kann auch Zugriff auf Oozie-Auftragsdaten bieten, nachdem Sie Ihren Cluster gelöscht haben.The metastore can also provide access to Oozie job data after you delete your cluster.

Anleitungen zum Erstellen eines Oozie-Metastore mit einer Azure SQL-Datenbank finden Sie unter Verwenden von Apache Oozie für Workflows.For instructions on creating an Oozie metastore with Azure SQL Database, see Use Apache Oozie for workflows.

Benutzerdefinierte Ambari-DatenbankCustom Ambari DB

Informationen zum Verwenden Ihrer eigenen externen Datenbank mit Apache Ambari in HDInsight finden Sie unter Benutzerdefinierte Apache Ambari-Datenbank.To use your own external database with Apache Ambari on HDInsight, see Custom Apache Ambari database.

Nächste SchritteNext steps