你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

将 Azure Databricks 连接到启用了 REST API 的 Azure NetApp 文件对象卷

对象 REST API 功能使 Azure Databricks 能够读取和写入 Azure NetApp 文件卷中的数据,从而支持从引入到模型部署的端到端数据科学工作流。

若要连接到 Azure Databricks,请将初始化(init)脚本配置为在 Databricks 计算终结点上加载 SSL 证书。 使用此设置可确保 Azure Databricks 与启用 REST API 的 Azure NetApp 文件对象卷之间的安全通信。

在您开始之前

请确保您具备以下内容:

创建 init 脚本

初始化脚本在群集启动期间运行。 有关 init 脚本的详细信息,请参阅 什么是 init 脚本?

  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 CLI 或 Databricks UI 将 bash 脚本上传到 Databricks 文件系统(DBFS)。 有关详细信息,请参阅如何在 Azure Databricks 上处理文件。

配置群集

  1. 导航到你的 Azure Databricks 工作区。 打开群集配置设置。

  2. “高级选项”部分中,在Init 脚本下添加初始化脚本的路径。 例如:dbfs:/path/to/your/script.sh

    “创建新计算”菜单的屏幕截图。

  3. 选择 init.sh 脚本。 选择 “添加 ”,然后选择 “确认”。

  4. 若要应用更改并加载 SSL 证书,请重启群集。

  5. 在日志中,验证证书是否正确放置。

连接到 Azure NetApp 文件存储桶

Databricks 建议使用机密范围来存储所有凭据。 有关详细信息,请参阅 “管理机密范围”。

  1. 在 Databricks 笔记本中,配置 Spark 会话以连接到 Azure NetApp 文件存储桶。 例如:

    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() 
    

    成功读取操作的屏幕截图。

详细信息