Compartilhar via


Conectar o Azure Databricks a um volume habilitado para API REST do objeto do Azure NetApp Files

O recurso de API REST do objeto permite que o Azure Databricks leia e escreva dados em volumes do Azure NetApp Files, dando suporte a fluxos de trabalho de ciência de dados de ponta a ponta, da ingestão à implantação do modelo.

Para se conectar ao Azure Databricks, configure um script de inicialização (init) para carregar o certificado SSL nos pontos de extremidade de computação do Databricks. Usar essa configuração garante uma comunicação segura entre o Azure Databricks e seu volume habilitado para API REST de objetos do Azure NetApp Files.

Antes de começar

Verifique se você tem:

Criar o script de inicialização

O script de inicialização é executado durante a inicialização do cluster. Para obter mais informações sobre scripts de inicialização, consulte O que são scripts de inicialização?

  1. Escreva um script bash para carregar o certificado SSL. Salve o script com uma extensão .sh. Por exemplo:

    #!/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 a CLI do Databricks ou a interface do usuário do Databricks para carregar o script bash no DBFS (Sistema de Arquivos do Databricks). Para obter mais informações, consulte, trabalhar com arquivos no Azure Databricks.

Configurar o cluster

  1. Navegue até seu workspace do Azure Databricks. Abra as configurações do cluster.

  2. Na seção Opções Avançadas, adicione o caminho do script de inicialização em Scripts de Inicialização. Por exemplo: dbfs:/path/to/your/script.sh

    Captura de tela do menu Criar novo recurso de computação.

  3. Selecione o script init.sh. Selecione Adicionar e Confirmar.

  4. Para aplicar as alterações e carregar o certificado SSL, reinicie o cluster.

  5. Nos logs, valide se o certificado é colocado corretamente.

Conectar-se a um bucket do Azure NetApp Files

O Databricks recomenda o uso de escopos secretos para armazenar todas as credenciais. Para obter mais informações, consulte Gerenciar escopos secretos.

  1. No bloco de anotações do Databricks, configure a sessão do Spark para se conectar ao bucket do Azure NetApp Files. Por exemplo:

    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. Verifique a conexão executando uma operação de leitura simples. Por exemplo:

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

    Captura de tela da operação de leitura bem-sucedida.

Mais informações