Compartir por


Conexión de Azure Databricks a un volumen habilitado para la API REST de objetos de Azure NetApp Files

La característica de API REST de objetos permite a Azure Databricks leer y escribir datos en volúmenes de Azure NetApp Files, lo que admite flujos de trabajo de ciencia de datos de un extremo a otro desde la ingesta hasta la implementación del modelo.

Para conectarse a Azure Databricks, configure un script de inicialización (init) para cargar el certificado SSL en los puntos de conexión de proceso de Databricks. El uso de esta configuración garantiza una comunicación segura entre Azure Databricks y el volumen habilitado para la API REST del objeto de Azure NetApp Files.

Antes de empezar

Asegúrese de que tiene:

Creación del script de inicialización

El script de inicialización se ejecuta durante el inicio del clúster. Para obtener más información sobre los scripts de inicialización, consulte ¿Qué son los scripts de inicialización?

  1. Escriba un script de Bash para cargar el certificado SSL. Guarde el script con una extensión .sh. Por ejemplo:

    #!/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. Use la CLI de Databricks o la interfaz de usuario de Databricks para cargar el script de Bash en el sistema de archivos de Databricks (DBFS). Para más información, consulte Trabajar con archivos en Azure Databricks.

Configuración del clúster

  1. Vaya al área de trabajo de Azure Databricks. Abra las opciones de configuración del clúster.

  2. En la sección Opciones avanzadas, agregue la ruta de acceso al script de inicialización en Scripts de inicialización. Por ejemplo: dbfs:/path/to/your/script.sh

    Recorte de pantalla del menú Crear nuevo proceso.

  3. Seleccione el script init.sh. Seleccione Agregar y , después, Confirmar.

  4. Para aplicar los cambios y cargar el certificado SSL, reinicie el clúster.

  5. En los registros, valide si el certificado se coloca correctamente.

Conexión a un depósito de Azure NetApp Files

Databricks recomienda usar ámbitos secretos para almacenar todas las credenciales. Para obtener más información, consulte Administración de ámbitos secretos.

  1. En el cuaderno de Databricks, configure la sesión de Spark para conectarse al cubo de Azure NetApp Files. Por ejemplo:

    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. Compruebe la conexión realizando una operación de lectura sencilla. Por ejemplo:

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

    Captura de pantalla de la operación de lectura exitosa.

Información adicional