Freigeben über


Migrieren lokaler Apache Hadoop-Cluster zu Azure HDInsight – Best Practices für Infrastruktur

Dieser Artikel enthält Empfehlungen für die Verwaltung der Infrastruktur von Azure HDInsight-Clustern. Er ist Teil einer Reihe von Artikeln, die bewährte Methoden für die Migration von lokalen Apache Hadoop-Systemen zu Azure HDInsight enthalten.

Planen der HDInsight-Clusterkapazität

Die wichtigsten Entscheidungen für die Kapazitätsplanung von HDInsight-Clustern sind die folgenden:

Region
Die Azure-Region bestimmt, wo der Cluster physisch bereitgestellt wird. Um die Latenz der Lese- und Schreibvorgänge zu minimieren, sollte sich der Cluster in der gleichen Region wie Ihre Daten befinden.

Speicherort und -größe
Der Standardspeicher muss sich in derselben Region wie der Cluster befinden. Für einen Cluster mit 48 Knoten wird empfohlen, 4 bis 8 Speicherkonten zu verwenden. Es mag bereits ausreichend Gesamtspeicher verfügbar sein, doch jedes Speicherkonto bietet zusätzliche Netzwerkbandbreite für die Serverknoten. Wenn Sie mehrere Speicherkonten haben, verwenden Sie für jedes Speicherkonto einen zufälligen Namen ohne Präfix. Die zufällige Benennung soll die Wahrscheinlichkeit alle Konten übergreifender Speicherengpässe (Drosselung) oder üblicher Fehler reduzieren. Verwenden Sie nur einen Container pro Speicherkonto, um die Leistung zu verbessern.

VM-Größe und -Typ (unterstützt jetzt die G-Serie)
Jeder Clustertyp hat einen Satz von Knotentypen, und jeder Knotentyp hat bestimmte Optionen für VM-Größe und -Typ. Größe und Typ des virtuellen Computers richten sich nach CPU-Verarbeitungsleistung, RAM-Größe und Netzwerklatenz. Mit einer simulierten Workload kann für jeden Knotentyp die optimale VM-Größe und der richtige Typ ermittelt werden.

Anzahl der Workerknoten
Die anfängliche Anzahl von Workerknoten kann mit den simulierten Workloads bestimmt werden. Der Cluster kann später durch Hinzufügen weiterer Workerknoten skaliert werden, um Spitzenlastanforderungen zu erfüllen. Der Cluster kann später herunterskaliert werden, wenn die zusätzlichen Workerknoten nicht benötigt werden.

Weitere Informationen finden Sie im Artikel Kapazitätsplanung für HDInsight-Cluster.

In Standardknotenkonfiguration und Standardgrößen von virtuellen Computern für Cluster finden Sie Informationen zu empfohlenen VM-Typen für jeden Typ von HDInsight-Cluster.

Überprüfen der Verfügbarkeit von Hadoop-Komponenten in HDInsight

Jede HDInsight-Version ist eine Clouddistribution einer Reihe von Komponenten des Hadoop-Ökosystems. Unter HDInsight-Komponentenversionen finden Sie Einzelheiten zu allen HDInsight-Komponenten und deren aktuelle Versionen.

Sie können auch die Benutzeroberfläche von Apache Ambari oder die Ambari-REST-API verwenden, um die Hadoop-Komponenten und -Versionen in HDInsight zu überprüfen.

Anwendungen oder Komponenten, die in lokalen Clustern verfügbar waren, aber nicht Teil der HDInsight-Cluster sind, können auf einem Edgeknoten oder auf einer VM im gleichen VNet wie der HDInsight-Cluster hinzugefügt werden. Eine Hadoop-Anwendung eines Drittanbieters, die in Azure HDInsight nicht verfügbar ist, kann über die Option „Anwendungen“ im HDInsight-Cluster installiert werden. Benutzerdefinierte Hadoop-Anwendungen können auf dem HDInsight-Cluster mithilfe von „Skriptaktionen“ installiert werden. Die folgende Tabelle enthält einige allgemeine Anwendungen sowie die Optionen für die HDInsight-Integration:

Anwendung Integration
Luftströmung IaaS- oder HDInsight-Edgeknoten
Alluxio IaaS
Arcadia IaaS
Atlas Keine (nur HDP)
Datameer HDInsight-Edgeknoten
Datastax (Cassandra) IaaS (Azure Cosmos DB – eine Alternative auf Azure)
DataTorrent IaaS
Drill IaaS
Ignite IaaS
Jethro IaaS
Mapador IaaS
MongoDB IaaS (Azure Cosmos DB – eine Alternative auf Azure)
NiFi IaaS
Presto IaaS- oder HDInsight-Edgeknoten
Python 2 PaaS
Python 3 PaaS
R PaaS
SAS IaaS
Vertica IaaS (SQLDW als eine Alternative in Azure)
Tableau IaaS
Waterline HDInsight-Edgeknoten
StreamSets HDInsight-Edge
Palantir IaaS
Sailpoint Iaas

Weitere Informationen finden Sie im Artikel Welche Hadoop-Komponenten und -Versionen sind in HDInsight verfügbar?.

Anpassen von HDInsight-Clustern mit Skriptaktionen

HDInsight bietet eine Methode für die Clusterkonfiguration namens Skriptaktion. Eine Skriptaktion ist ein Bash-Skript, das auf den Knoten in einem HDInsight-Cluster ausgeführt wird und dazu verwendet werden kann, zusätzliche Komponenten zu installieren und Konfigurationseinstellungen zu ändern.

Skriptaktionen müssen als URI gespeichert werden, der über den HDInsight-Cluster verfügbar ist. Sie können während oder nach der Clustererstellung verwendet werden und können auch auf die Ausführung auf bestimmten Knotentypen beschränkt werden.

Das Skript kann permanent sein oder einmal ausgeführt werden. Permanente Skripts werden verwendet, um mithilfe von Skalierungsvorgängen neue Workerknoten anzupassen, die dem Cluster hinzugefügt wurden. Bei Skalierungsvorgängen kann ein permanentes Skript auch Änderungen auf einen anderen Knotentyp anwenden, z.B. einen Hauptknoten.

HDInsight verfügt über vorgefertigte Skripts zum Installieren der folgenden Komponenten auf HDInsight-Clustern:

  • Hinzufügen eines Azure Storage-Kontos
  • Installieren von Hue
  • Installieren von Presto
  • Installieren von Solr
  • Installieren von Giraph
  • Vorabladen von Hive-Bibliotheken
  • Installieren oder Aktualisieren von Mono

Hinweis

HDInsight bietet keine direkte Unterstützung für benutzerdefinierte Hadoop-Komponenten oder Komponenten, die über Skriptaktionen installiert werden.

Skriptaktionen können auch als HDInsight-Anwendung im Azure Marketplace veröffentlicht werden.

Weitere Informationen finden Sie in den folgenden Artikeln:

Anpassen von HDInsight-Konfigurationen mithilfe von Bootstrap

Änderungen an Konfigurationen in den Konfigurationsdateien wie core-site.xml, hive-site.xml und oozie-env.xml können mit Bootstrap vorgenommen werden. Das folgende Skript ist ein Beispiel für die Verwendung des AZ-Moduls und des Cmdlets New-AzHDInsightClusterConfig von PowerShell:

# hive-site.xml configuration
$hiveConfigValues = @{"hive.metastore.client.socket.timeout"="90"}

$config = New—AzHDInsightClusterConfig '
    | Set—AzHDInsightDefaultStorage
    —StorageAccountName "$defaultStorageAccountName.blob. core.windows.net" `
    —StorageAccountKey "defaultStorageAccountKey " `
    | Add—AzHDInsightConfigValues `
        —HiveSite $hiveConfigValues

New—AzHDInsightCluster `
    —ResourceGroupName $existingResourceGroupName `
    —Cluster-Name $clusterName `
    —Location $location `
    —ClusterSizeInNodes $clusterSizeInNodes `
    —ClusterType Hadoop `
    —OSType Linux `
    —Version "3.6" `
    —HttpCredential $httpCredential `
    —Config $config

Weitere Informationen finden Sie im Artikel Anpassen von HDInsight-Clustern mithilfe von Bootstrap. Siehe auch Verwalten von HDInsight-Clustern mithilfe der Apache Ambari-REST-API.

Zugreifen auf Clienttools über Edgeknoten des HDInsight Hadoop-Clusters

Ein leerer Edgeknoten ist ein virtueller Linux-Computer, auf dem die gleichen Clienttools installiert und konfiguriert sind wie auf den Hauptknoten, aber keine Hadoop-Dienste ausgeführt werden. Der Edgeknoten kann für folgende Zwecke verwendet werden:

  • Zugriff auf den Cluster
  • Testen der Clientanwendungen
  • Hosten der Clientanwendungen

Edgeknoten können über das Azure-Portal erstellt und gelöscht und während oder nach der Clustererstellung verwendet werden. Nach der Erstellung eines Edgeknotens können Sie über SSH eine Verbindung zum Edgeknoten herstellen und Client-Tools ausführen, um auf den Hadoop-Cluster in HDInsight zuzugreifen. Der SSH-Endpunkt des Edgeknotens ist <EdgeNodeName>.<ClusterName>-ssh.azurehdinsight.net:22.

Weitere Informationen finden Sie im Artikel Verwenden leerer Edgeknoten in Apache Hadoop-Clustern in HDInsight.

Verwenden des Features zum Hoch- und Herunterskalieren von Clustern

HDInsight bietet Flexibilität, indem Sie die Anzahl der Workerknoten in Ihren Clustern hoch- und herunterskalieren können. So können Sie einen Cluster nach den Geschäftsstunden oder am Wochenende verkleinern und während der Spitzenbelastungen erweitern. Weitere Informationen finden Sie unter

Verwenden von HDInsight mit Azure Virtual Network

Azure Virtual Networks ermöglichen Azure-Ressourcentypen, beispielsweise Azure-VMs, die sichere Kommunikation miteinander sowie mit dem Internet und lokalen Netzwerken, indem Netzwerkdatenverkehr gefiltert und weitergeleitet wird.

Die Nutzung eines Azure Virtual Network mit HDInsight ermöglicht die folgenden Szenarien:

  • Herstellen einer Verbindung mit HDInsight direkt über ein lokales Netzwerk
  • Herstellen einer Verbindung für HDInsight mit Datenspeichern in einem Azure Virtual Network
  • Direktes Zugreifen auf Hadoop-Dienste, die nicht öffentlich über das Internet verfügbar sind (Beispiele: Kafka-APIs oder die HBase-Java-API)

HDInsight kann entweder zu einem neuen oder vorhandenen Azure Virtual Network hinzugefügt werden. Wenn HDInsight zu einem bestehenden Virtual Network hinzugefügt wird, müssen die bestehenden Netzwerksicherheitsgruppen und benutzerdefinierten Routen aktualisiert werden, um uneingeschränkten Zugriff auf mehrere IP-Adressen im Azure-Rechenzentrum zu ermöglichen. Stellen Sie außerdem sicher, dass Sie den Datenverkehr zu den Ports, die von HDInsight-Diensten verwendet werden, nicht blockieren.

Hinweis

Die Tunnelerzwingung wird derzeit von HDInsight nicht unterstützt. Die Tunnelerzwingung ist eine Subnetzeinstellung, bei der für ausgehenden Internetdatenverkehr der Umweg über ein Gerät zur Untersuchung und Protokollierung erzwungen wird. Entfernen Sie entweder die Tunnelerzwingung, bevor Sie HDInsight in einem Subnetz installieren, oder erstellen Sie ein neues Subnetz für HDInsight. HDInsight unterstützt auch keine Beschränkung der ausgehenden Netzwerkverbindung.

Weitere Informationen finden Sie in den folgenden Artikeln:

Herstellen einer sicheren Verbindung mit Azure-Diensten unter Verwendung von Azure Virtual Network-Dienstendpunkten

HDInsight unterstützt Virtual Network-Dienstendpunkte, mit denen Sie eine sichere Verbindung zu Azure Blob Storage, Azure Data Lake Storage Gen2, Azure Cosmos DB und SQL-Datenbanken herstellen können. Durch die Aktivierung eines Dienstendpunkts für Azure HDInsight, durchläuft der Datenverkehr eine geschützte Route im Azure-Rechenzentrum. Dank dieser höheren Sicherheit in der Netzwerkschicht können Sie große Datenspeicherkonten auf ihre spezifischen Virtual Networks (VNETs) festlegen und dennoch HDInsight-Cluster nahtlos nutzen, um auf diese Daten zuzugreifen und sie zu verarbeiten.

Weitere Informationen finden Sie in den folgenden Artikeln:

Verbinden von HDInsight mit einem lokalen Netzwerk

HDInsight kann mit Ihrem lokalen Netzwerk verbunden werden, indem Sie Azure Virtual Networks und ein VPN-Gateway einsetzen. Die folgenden Schritte können zum Herstellen einer Verbindung verwendet werden:

  • Verwenden Sie HDInsight in einem Azure Virtual Network, das mit dem lokalen Netzwerk verbunden ist.
  • Konfigurieren Sie die DNS-Namensauflösung zwischen dem virtuellen Netzwerk und Ihrem lokalen Netzwerk.
  • Konfigurieren Sie Netzwerksicherheitsgruppen oder benutzerdefinierte Routen zum Steuern des Netzwerkdatenverkehrs.

Weitere Informationen finden Sie im Artikel Herstellen einer Verbindung von HDInsight mit Ihrem lokalen Netzwerk.

Nächste Schritte

Lesen Sie den nächsten Artikel in dieser Reihe: Best Practices für den Speicher bei der Migration von lokalen Hadoop-Clustern zu Azure HDInsight