Teilen über


Verbinde Azure Databricks mit einem REST-API-aktivierten Volume eines Azure NetApp Files-Objekts.

Das Objekt-REST-API-Feature ermöglicht Azure Databricks das Lesen und Schreiben von Daten in Azure NetApp Files-Volumes, die End-to-End Data Science-Workflows von der Aufnahme in die Modellbereitstellung unterstützen.

Um eine Verbindung mit Azure Databricks herzustellen, konfigurieren Sie ein Initialisierungsskript (init), um das SSL-Zertifikat auf den Databricks-Computeendpunkten zu laden. Durch die Verwendung dieses Setups wird die sichere Kommunikation zwischen Azure Databricks und Ihrem REST-API-aktivierten Azure NetApp Files-Objekt sichergestellt.

Bevor Sie anfangen

Stellen Sie sicher, dass Sie folgendes haben:

Erstellen des Init-Skripts

Das Init-Skript wird während des Clusterstarts ausgeführt. Weitere Informationen zu init-Skripts finden Sie unter Was sind init-Skripts?

  1. Schreiben Sie ein Bash-Skript, um das SSL-Zertifikat zu laden. Speichern Sie das Skript mit einer .sh-Erweiterung. Beispiel:

    #!/bin/bash 
    
    cat << 'EOF' > /usr/local/share/ca-certificates/myca.crt 
    
    -----BEGIN CERTIFICATE----- 
    
    
    -----END CERTIFICATE----- 
    
    EOF 
    
    update-ca-certificates 
    
    PEM_FILE="/etc/ssl/certs/myca.pem" 
    
    PASSWORD="changeit" 
    
    JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::") 
    
    KEYSTORE="$JAVA_HOME/lib/security/cacerts" 
    
    CERTS=$(grep 'END CERTIFICATE' $PEM_FILE| wc -l) 
    
    # To process multiple certificates with keytool, you need to extract each one from the PEM file and import it into the Java KeyStore. 
    
    for N in $(seq 0 $(($CERTS - 1))); do 
    
    ALIAS="$(basename $PEM_FILE)-$N" 
    
    echo "Adding to keystore with alias:$ALIAS" 
    
    cat $PEM_FILE | 
    
        awk "n==$N { print }; /END CERTIFICATE/ { n++ }" | 
    
        keytool -noprompt -import -trustcacerts \ 
    
                -alias $ALIAS -keystore $KEYSTORE -storepass $PASSWORD 
    
    done 
    
    echo "export REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt" >> /databricks/spark/conf/spark-env.sh 
    
    echo "export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt" >> /databricks/spark/conf/spark-env.sh 
    
    #echo "volume IP URL of the bucket >> /etc/hosts 
    
  2. Verwenden Sie die Databricks CLI oder die Databricks UI, um das Bash-Skript in das Databricks File System (DBFS) hochzuladen. Weitere Informationen finden Sie unter "Arbeiten mit Dateien in Azure Databricks".

Konfigurieren des Clusters

  1. Navigieren Sie zu Ihrem Azure Databricks-Arbeitsbereich. Öffnen Sie die Clusterkonfigurationseinstellungen.

  2. Fügen Sie im Abschnitt "Erweiterte Optionen " den Pfad zum Init-Skript unter "Init-Skripts" hinzu. Beispiel: dbfs:/path/to/your/script.sh

    Screenshot des Menüs

  3. Wählen Sie das skript init.sh aus. Wählen Sie "Hinzufügen" und dann "Bestätigen" aus.

  4. Um die Änderungen anzuwenden und das SSL-Zertifikat zu laden, starten Sie den Cluster neu.

  5. Überprüfen Sie in den Protokollen, ob das Zertifikat ordnungsgemäß platziert ist.

Herstellen einer Verbindung mit einem Azure NetApp Files-Bucket

Databricks empfiehlt die Verwendung geheimer Bereiche zum Speichern aller Anmeldeinformationen. Weitere Informationen finden Sie unter Verwalten geheimer Bereiche.

  1. Konfigurieren Sie in Ihrem Databricks-Notizbuch die Spark-Sitzung, um eine Verbindung mit dem Azure NetApp Files-Bucket herzustellen. Beispiel:

    spark.conf.set("fs.s3a.endpoint", "https://your-s3-endpoint") 
    spark.conf.set("fs.s3a.access.key", "your-access-key") 
    spark.conf.set("fs.s3a.secret.key", "your-secret-key") 
    spark.conf.set("fs.s3a.connection.ssl.enabled", "true") 
    
  2. Überprüfen Sie die Verbindung, indem Sie einen einfachen Lesevorgang ausführen. Beispiel:

    df = spark.read.csv("s3a://your-bucket/path/to/data.csv") 
    df.show() 
    

    Screenshot des erfolgreichen Lesevorgangs.

Mehr Informationen