Ansluta Azure Databricks till en REST API-aktiverad azure NetApp Files-objektvolym

Med rest-API-funktionen för objekt kan Azure Databricks läsa och skriva data till Azure NetApp Files-volymer, vilket stöder datavetenskapsarbetsflöden från inmatning till modelldistribution.

För att ansluta till Azure Databricks konfigurerar du ett initieringsskript (init) för att läsa in SSL-certifikatet på Databricks-beräkningsslutpunkterna. Med den här konfigurationen säkerställer du säker kommunikation mellan Azure Databricks och den REST API-aktiverade volymen för Azure NetApp Files-objektet.

Innan du börjar

Kontrollera att du har:

Skapa init-skriptet

Init-skriptet körs under klusterstarten. Mer information om init-skript finns i Vad är init-skript?

  1. Skriv ett bash-skript för att läsa in SSL-certifikatet. Spara skriptet med ett .sh-tillägg. Till exempel:

    #!/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. Använd Databricks CLI eller Databricks-användargränssnittet för att ladda upp bash-skriptet till Databricks File System (DBFS). Mer information finns i Arbeta med filer på Azure Databricks.

Konfigurera klustret

  1. Gå till Azure Databricks-arbetsytan. Öppna konfigurationsinställningarna för klustret.

  2. I avsnittet Avancerade alternativ lägger du till sökvägen till init-skriptet under Init-skript. Till exempel: dbfs:/path/to/your/script.sh

    Skärmbild av menyn Skapa ny beräkning.

  3. Välj skriptet init.sh. Välj Lägg till och bekräfta.

  4. Starta om klustret om du vill tillämpa ändringarna och läsa in SSL-certifikatet.

  5. Kontrollera om certifikatet är korrekt placerat i loggarna.

Ansluta till en Azure NetApp Files-bucket

Databricks rekommenderar att du använder hemlighetsomfång för att lagra alla autentiseringsuppgifter. Mer information finns under Hantera hemliga områden.

  1. I din Databricks-anteckningsbok konfigurerar du Spark-sessionen så att den ansluter till Bucketen Azure NetApp Files. Till exempel:

    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. Verifiera anslutningen genom att utföra en enkel läsåtgärd. Till exempel:

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

    Skärmbild av lyckad läsåtgärd.

Mer information