你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
对象 REST API 功能使 Azure Databricks 能够读取和写入 Azure NetApp 文件卷中的数据,从而支持从引入到模型部署的端到端数据科学工作流。
若要连接到 Azure Databricks,请将初始化(init)脚本配置为在 Databricks 计算终结点上加载 SSL 证书。 使用此设置可确保 Azure Databricks 与启用 REST API 的 Azure NetApp 文件对象卷之间的安全通信。
在您开始之前
请确保您具备以下内容:
创建 init 脚本
初始化脚本在群集启动期间运行。 有关 init 脚本的详细信息,请参阅 什么是 init 脚本?
编写 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使用 Databricks CLI 或 Databricks UI 将 bash 脚本上传到 Databricks 文件系统(DBFS)。 有关详细信息,请参阅如何在 Azure Databricks 上处理文件。
配置群集
导航到你的 Azure Databricks 工作区。 打开群集配置设置。
在 “高级选项”部分中,在Init 脚本下添加初始化脚本的路径。 例如:
dbfs:/path/to/your/script.sh选择 init.sh 脚本。 选择 “添加 ”,然后选择 “确认”。
连接到 Azure NetApp 文件存储桶
Databricks 建议使用机密范围来存储所有凭据。 有关详细信息,请参阅 “管理机密范围”。
在 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")通过执行简单的读取作来验证连接。 例如:
df = spark.read.csv("s3a://your-bucket/path/to/data.csv") df.show()