Подключение Azure Databricks к тому объекту Azure NetApp Files, поддерживающему REST API.

Функция REST API объекта позволяет Azure Databricks считывать и записывать данные в тома Azure NetApp Files, поддерживая комплексные рабочие процессы обработки и анализа данных от приема до развертывания модели.

Чтобы подключиться к Azure Databricks, вы настроите скрипт инициализации (init) для загрузки SSL-сертификата в вычислительных конечных точках Databricks. Настройка этой системы обеспечивает безопасное взаимодействие между Azure Databricks и томом Azure NetApp Files, поддерживающим REST API.

Перед тем как начать

Убедитесь, что у вас есть:

Создание скрипта инициализации

Скрипт инициализации выполняется во время запуска кластера. Дополнительные сведения о скриптах инициализации см. в разделе "Что такое скрипты инициализации"?

  1. Создайте скрипт Bash для загрузки SSL-сертификата. Сохраните скрипт с расширением .sh. Рассмотрим пример.

    #!/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. Используйте интерфейс командной строки Databricks или пользовательский интерфейс Databricks для отправки скрипта bash в файловую систему Databricks (DBFS). Дополнительные сведения см. в статье о работе с файлами в Azure Databricks.

Настройка кластера

  1. Перейдите к рабочей области Azure Databricks. Откройте параметры конфигурации кластера.

  2. В разделе "Дополнительные параметры" добавьте путь к скрипту init в разделе "Скрипты Init". Например: dbfs:/path/to/your/script.sh

    Снимок экрана: меню создания вычислений.

  3. Выберите скрипт init.sh. Нажмите кнопку "Добавить " и " Подтвердить".

  4. Чтобы применить изменения и загрузить SSL-сертификат, перезапустите кластер.

  5. В журналах проверьте правильность размещения сертификата.

Подключение к контейнеру Azure NetApp Files

Databricks рекомендует использовать области секретов для хранения всех учетных данных. Дополнительные сведения см. в разделе "Управление областями секретов".

  1. В записной книжке Databricks настройте сеанс Spark для подключения к контейнеру Azure NetApp Files. Рассмотрим пример.

    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. Проверьте подключение, выполнив простую операцию чтения. Рассмотрим пример.

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

    Снимок экрана: успешная операция чтения.

Дополнительные сведения