Verwenden von azdata DistCP, um Daten zwischen SQL Server Big Data-Clustern zu verschieben

Gilt für: SQL Server 2019 (15.x)

Wichtig

Das Microsoft SQL Server 2019-Big Data-Cluster-Add-On wird eingestellt. Der Support für SQL Server 2019-Big Data-Clusters endet am 28. Februar 2025. Alle vorhandenen Benutzer*innen von SQL Server 2019 mit Software Assurance werden auf der Plattform vollständig unterstützt, und die Software wird bis zu diesem Zeitpunkt weiterhin über kumulative SQL Server-Updates verwaltet. Weitere Informationen finden Sie im Ankündigungsblogbeitrag und unter Big Data-Optionen auf der Microsoft SQL Server-Plattform.

In diesem Artikel wird beschrieben, wie Sie azdata verwenden, um zwischen Big Data-Cluster für SQL Server leistungsstarke, verteilte Datenkopien durchzuführen.

Voraussetzungen

Einführung in verteilte Datenkopien auf SQL Server Big Data-Clustern

Hadoop HDFS DistCP ist ein Befehlszeilentool, das verwendet wird, um verteilte parallele Datei- und Ordnerkopien von einem HDFS-Cluster in einen anderen durchgeführt werden. Verteiltes paralleles Kopieren ermöglicht die schnelle Übertragung von Dateien und Ordner in Data Lake-Größenordnung zwischen zwei verschiedenen Clustern, wodurch Migrationen, die Erstellung von segmentierten Umgebungen, eine hohe Verfügbarkeit und Notfallwiederherstellungsszenarios möglich gemacht werden.

Hadoop HDFS DistCP verwendet einen MapReduce-Auftrag, um eine Liste von Dateien und Verzeichnissen als Eingabe für mehrere Zuordnungsaufgaben zu erweitern, von welchen jede eine Partition der in der Quellenliste spezifizierten Dateien in das Ziel kopiert. Dadurch können mehrere Datenknoten im Quellencluster Daten direkt an mehrere Datenknoten in den Zielclustern senden, wodurch ein wirklich verteiltes paralleles Kopierszenario erstellt wird.

In Big Data-Cluster für SQL Server CU13 oder höher ist die Funktion zum verteilten Kopieren in das Produkt integriert und wird durch den Befehl azdata bdc hdfs distcp verfügbar gemacht. Der Befehl ist ein asynchroner Vorgang, er wird sofort zurückgegeben, während der Kopierauftrag im Hintergrund ausgeführt wird. Sie können den Kopierauftrag überwachen, indem Sie entweder azdata oder die bereitgestellten Benutzeroberflächen zur Überwachung verwenden.

Nur Big Data-Cluster für SQL Server-Quellen und -Ziele werden unterstützt.

Cluster können in beiden Active Directory-Modi „aktiviert“ oder „grundlegende Sicherheit“ bereitgestellt werden. Kopien können zwischen einer beliebigen Kombination von Sicherheitsmodi ausgeführt werden. Für Cluster im Active Directory-Modus „aktiviert“ ist es erforderlich, dass sie sich in derselben Domäne befinden.

In diesem Leitfaden werden die folgenden Datenkopierszenarios beschrieben:

  • Azure Directory-fähige Cluster zu Azure Directory-fähigen Clustern
  • Cluster im Modus „grundlegende Sicherheit“ zu Azure Directory-fähigen Clustern
  • Cluster im Modus „grundlegende Sicherheit“ zu Clustern im Modus „grundlegende Sicherheit“

Erforderliche Schritte für alle Szenarios

Zertifikate sind erforderlich, um eine vertrauenswürdige Beziehung zwischen Quell- und Zielclustern zu erstellen. Diese Schritte sind nur einmal pro Kombination aus Quell- und Zielcluster erforderlich.

Wichtig

Wenn ein Big Data-Cluster in SQL Server mit Standardauthentifizierung (nicht AD) ein direktes Upgrade auf CU13 oder höher erhält, muss die distcp-Funktionalität aktiviert werden. (Dies hat keine Auswirkung auf neue CU13+-Clusterbereitstellungen mit Standardauthentifizierung.)

Führen Sie die folgenden zusätzlichen Schritte einmal aus, um die distcp-Funktionalität in diesem Szenario zu aktivieren:

kubectl -n $CLUSTER_NAME exec -it nmnode-0-0 -- bash
export HADOOP_USER_NAME=hdfs
hadoop fs -mkdir -p /tmp/hadoop-yarn/staging/history
hadoop fs -chown yarn /tmp/hadoop-yarn
hadoop fs -chown yarn /tmp/hadoop-yarn/staging
hadoop fs -chown yarn /tmp/hadoop-yarn/staging/history
hadoop fs -chmod 733 /tmp/hadoop-yarn
hadoop fs -chmod 733 /tmp/hadoop-yarn/staging
hadoop fs -chmod 733 /tmp/hadoop-yarn/staging/history

Die in den nächsten Schritten erforderlichen Notebooks sind Teil des Betriebsnotebooks für Big Data-Cluster für SQL Server. Weitere Informationen zum Installieren und Verwenden von Notebooks finden Sie unter Betriebsnotebooks.

Schritt 1: Zertifikaterstellung und -installation

Verbinden Sie Ihr Quellcuster mithilfe von Azure Data Studio. Von hier werden die Dateien kopiert. Führen Sie die folgenden Schritte aus:

  1. Erstellen Sie mithilfe von Notebook cer001-create-root-ca.ipynb ein neues Clusterstammzertifikat im Quellcluster.

  2. Laden Sie das neue Clusterstammzertifikat mithilfe von cer002-download-existing-root-ca.ipynb auf Ihren Computer herunter.

  3. Installieren Sie das neue Stammzertifikat mithilfe von cer005-install-existing-root-ca.ipynb im Quellencluster. Dieser Schritt wird 10 bis 15 Minuten dauern.

  4. Generieren Sie ein neues KNOX-Zertifikat im Quellencluster cer021-create-knox-cert.ipynb.

  5. Führen Sie den Signaturvorgang mit dem neuen KNOX-Zertifikat mit den neuen Stammzertifikat mithilfe von cer031-sign-knox-generated-cert.ipynb durch.

  6. Installieren Sie das neue KNOX-Zertifikat mithilfe von cer041-install-knox-cert.ipynb im Quellcluster.

    Wichtig

    Die Zertifikatgenerierungsbefehle erstellen die Stammzertifizierungsstellendatei (cluster-ca-certificate.crt) und die KNOX-Zertifikatdatei (cacert.pem) in "C:\Users\{Username}\AppData\Local\Temp\1\mssql-cluster-root-ca\" bei Windows und in "/tmp/mssql-cluster-root-ca/ bei Unix.

Schritt 2: Installieren des Zertifikats am Zielort

Verbinden Sie sich mithilfe von Azure Data Studio mit Ihrem Zielcluster. Die Dateien werden hierher kopiert. Führen Sie die folgenden Schritte aus:

Warnung

Wenn Sie Azure Data Studio auf verschiedenen Computern verwenden, um diese Aufgaben auszuführen, kopieren Sie die in Schritt 1 generierten Dateien cluster-ca-certificate.crt und cacert.pem an die richtigen Speicherorte auf dem anderen Computer, bevor Sie das Notebook im nächsten Schritt ausführen.

  1. Installieren Sie das neue Stammzertifikat aus dem Quellencluster mithilfe von cer005-install-existing-root-ca.ipynb im Zielcluster. Dieser Schritt wird 10 bis 15 Minuten dauern.

Schritt 3: Erstellen einer Schlüsseltabellendatei

Sie müssen eine Schlüsseltabellendatei erstellen, wenn einer der Cluster Active Directory-fähig ist. Die Datei führt eine Authentifizierung durch, um die Durchführung der Kopie zu ermöglichen.

Erstellen Sie die Schlüsseltabellendatei mithilfe von ktutil. Im Folgenden wird ein Beispiel aufgeführt. Achten Sie darauf, die Umgebungsvariablen DOMAIN_SERVICE_ACCOUNT_USERNAME, DOMAIN_SERVICE_ACCOUNT_PASSWORD und REALM mit den entsprechenden Werten zu definieren oder zu ersetzen.

ktutil
> add_entry -password -p $DOMAIN_SERVICE_ACCOUNT_USERNAME@$REALM -k 1 -e arcfour-hmac-md5
$DOMAIN_SERVICE_ACCOUNT_PASSWORD
> add_entry -password -p $DOMAIN_SERVICE_ACCOUNT_USERNAME@$REALM -k 1 -e aes256-cts
$DOMAIN_SERVICE_ACCOUNT_PASSWORD
> add_entry -password -p $DOMAIN_SERVICE_ACCOUNT_USERNAME@$REALM -k 1 -e aes256-cts-hmac-sha1-96
$DOMAIN_SERVICE_ACCOUNT_PASSWORD
> wkt /tmp/$DOMAIN_SERVICE_ACCOUNT_USERNAME.keytab
> exit

Schritt 4: Kopieren der Schlüsseltabelle an den HDFS-Speicherort

Dieser Schritt ist nur erforderlich, wenn einer der Cluster Active Directory-fähig ist.

Achten sie darauf, die Umgebungsvariablen DOMAIN_SERVICE_ACCOUNT_USERNAME mit dem entsprechenden Wert zu definieren oder zu ersetzen.

Laden Sie die Schlüsseltabelle an den Zielort (ein sicheres Cluster) hoch:

azdata bdc hdfs mkdir -p /user/$DOMAIN_SERVICE_ACCOUNT_USERNAME
azdata bdc hdfs cp -f /tmp/$DOMAIN_SERVICE_ACCOUNT_USERNAME.keytab -t /user/$DOMAIN_SERVICE_ACCOUNT_USERNAME/$DOMAIN_SERVICE_ACCOUNT_USERNAME.keytab

Datenkopierszenarios

Szenario 1: Active Directory-fähige Cluster zu Active Directory-fähigem Cluster

  1. Exportieren Sie die erforderliche Umgebungsvariable DISTCP_KRB5KEYTAB:

    export DISTCP_KRB5KEYTAB=/user/$DOMAIN_SERVICE_ACCOUNT_USERNAME/$DOMAIN_SERVICE_ACCOUNT_USERNAME.keytab
    
  2. Definieren oder ersetzen Sie die Variablen CLUSTER_CONTROLLER, DESTINATION_CLUSTER_NAMESPACE und PRINCIPAL mit den entsprechenden Werten. Verwenden Sie dann azdata, um sich beim Zielcluster zu authentifizieren:

    azdata login --auth ad --endpoint $CLUSTER_CONTROLLER --namespace $DESTINATION_CLUSTER_NAMESPACE --principal $PRINCIPAL
    
  3. Führen Sie die verteilte Datenkopie aus:

    azdata bdc hdfs distcp submit -f https://knox.$CLUSTER_NAME.$DOMAIN:30443/file.txt -t  /file.txt
    

Szenario 2: Cluster im Modus „grundlegende Sicherheit“ zu Clustern im Active Directory-Modus „aktiviert“

  1. Exportieren Sie die erforderliche Umgebungsvariable DISTCP_KRB5KEYTAB, DISTCP_AZDATA_USERNAME und DISTCP_AZDATA_PASSWORD:

    export DISTCP_KRB5KEYTAB=/user/$DOMAIN_SERVICE_ACCOUNT_USERNAME/$DOMAIN_SERVICE_ACCOUNT_USERNAME.keytab
    export DISTCP_AZDATA_USERNAME=<your basic security bdc username> 
    export DISTCP_AZDATA_PASSWORD=<your basic security bdc password>
    
  2. Definieren oder ersetzen Sie die Variablen CLUSTER_CONTROLLER, DESTINATION_CLUSTER_NAMESPACE und PRINCIPAL mit den entsprechenden Werten. Verwenden Sie dann azdata, um sich beim Zielcluster zu authentifizieren:

    azdata login --auth ad --endpoint $CLUSTER_CONTROLLER --namespace $DESTINATION_CLUSTER_NAMESPACE --principal $PRINCIPAL
    
  3. Führen Sie die verteilte Datenkopie aus:

    azdata bdc hdfs distcp submit --from-path https://$SOURCE_CLUSTER_IP:30443/file.txt --to-path /file.txt
    

Szenario 3: Cluster im Modus „grundlegende Sicherheit“ zu Clustern im Modus „grundlegende Sicherheit“

  1. Exportieren Sie die erforderliche Umgebungsvariable DISTCP_AZDATA_USERNAME und DISTCP_AZDATA_PASSWORD:

    export DISTCP_AZDATA_USERNAME=<your basic security bdc username> 
    export DISTCP_AZDATA_PASSWORD=<your basic security bdc password>
    
  2. Verwenden Sie dann azdata, um sich beim Zielcluster zu authentifizieren

  3. Führen Sie die verteilte Datenkopie aus.

    azdata bdc hdfs distcp submit --from-path https://$SOURCE_CLUSTER_IP:30443/file.txt --to-path /file.txt
    

Überwachen des verteilten Kopierauftrags

Der Befehl azdata bdc hdfs distcp submit ist ein asynchroner Vorgang, er wird sofort zurückgegeben, während der Kopierauftrag im Hintergrund ausgeführt wird. Sie können den Kopierauftrag überwachen, indem Sie entweder azdata oder die bereitgestellten Benutzeroberflächen zur Überwachung verwenden.

Auflisten aller verteilten Kopieraufträge

azdata bdc hdfs distcp list

Vermerken Sie die job-id des Auftrags, den Sie nachverfolgen möchten. Alle anderen Befehle hängen davon ab.

Abrufen des Status eines verteilten Kopierauftrags

azdata bdc hdfs distcp state [--job-id | -i] <JOB_ID>

Abrufen des vollständigen Status eines verteilten Kopierauftrags

azdata bdc hdfs distcp status [--job-id | -i] <JOB_ID>

Abrufen der Protokolle eines verteilten Kopierauftrags

azdata bdc hdfs distcp log [--job-id | -i] <JOB_ID>

Hinweise zum verteilten Kopieren

  1. Um vollständige Verzeichnisse und deren Inhalt zu kopieren, beenden Sie das Pfadargument mit einem Verzeichnis ohne „/“. Im folgenden Beispiel wird das vollständige Verzeichnis sourceDirectories in das HDFS-Stammziel kopiert:

    azdata bdc hdfs distcp submit --from-path https://$SOURCE_CLUSTER_IP:30443/sourceDirectories --to-path /
    
  2. Der Befehl kann Optionen enthalten, welche die Modifizierer --overwrite, --preserve, --update und --delete unterstützen. Der Modifizierer sollte wie unten gezeigt direkt hinter dem Schlüsselwort „submit“ platziert werden:

    azdata bdc hdfs distcp submit {options} --from-path https://$SOURCE_CLUSTER_IP:30443/sourceDirectories --to-path /
    

Nächste Schritte

Weitere Informationen finden Sie hier: Einführung in Big Data-Cluster für SQL Server.

Eine vollständige Referenz zum neuen Befehl finden sie unter azdata bdc hdfs distcp.