物件 REST API 功能可讓 Azure Databricks 讀取和寫入資料至 Azure NetApp Files 磁碟區,支援從擷取到模型部署的端對端資料科學工作流程。
若要連線到 Azure Databricks,您可以設定初始化 (init) 腳本,以在 Databricks 計算端點上載入 SSL 憑證。 使用此設定可確保 Azure Databricks 與已啟用 REST API 的 Azure NetApp Files 物件磁碟區之間的安全通訊。
開始之前
確保您擁有:
- 已設定具備 REST API 功能的 Azure NetApp Files 物件磁碟區
- 作用中的 Azure Databricks 工作區
建立init指令碼
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 Files 儲存區
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()