Partager via


Connecter Azure Databricks à un volume activé par l’API REST d’objets Azure NetApp Files

La fonctionnalité d’API REST objet permet à Azure Databricks de lire et d’écrire des données dans des volumes Azure NetApp Files, prenant en charge les flux de travail de science des données de bout en bout, de l’ingestion au déploiement de modèles.

Pour vous connecter à Azure Databricks, vous configurez un script d’initialisation (init) pour charger le certificat SSL sur les points de terminaison de calcul Databricks. Utiliser cette configuration assure une communication sécurisée entre Azure Databricks et votre volume activé pour l'API REST d'objet Azure NetApp Files.

Avant de commencer

Assurez-vous de disposer des éléments suivants :

Créer le script init

Le script init s’exécute au démarrage du cluster. Pour plus d’informations sur les scripts init, consultez Qu’est-ce que les scripts init ?

  1. Écrivez un script bash pour charger le certificat SSL. Enregistrez le script avec une extension .sh. Par exemple:

    #!/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. Utilisez l’interface cli Databricks ou l’interface utilisateur Databricks pour charger le script bash dans le système de fichiers Databricks (DBFS). Pour plus d’informations, consultez travailler avec des fichiers sur Azure Databricks.

Configurer le cluster

  1. Accédez à votre espace de travail Azure Databricks. Ouvrez les paramètres de configuration du cluster.

  2. Dans la section Options avancées , ajoutez le chemin d’accès au script init sous Scripts Init. Par exemple : dbfs:/path/to/your/script.sh

    Capture d’écran du menu Créer un nouveau calcul.

  3. Sélectionnez le script init.sh. Sélectionnez Ajouter , puis Confirmer.

  4. Pour appliquer les modifications et charger le certificat SSL, redémarrez le cluster.

  5. Dans les journaux, vérifiez si le certificat est placé correctement.

Se connecter à un compartiment Azure NetApp Files

Databricks recommande d’utiliser des scopes secrets pour stocker tous les identifiants. Pour plus d’informations, consultez Gérer les étendues de secrets.

  1. Dans votre notebook Databricks, configurez la session Spark pour vous connecter au compartiment Azure NetApp Files. Par exemple:

    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. Vérifiez la connexion en effectuant une opération de lecture simple. Par exemple:

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

    Capture d’écran de l’opération de lecture réussie.

Plus d’informations