オブジェクト REST API 機能を使用すると、Azure Databricks は Azure NetApp Files ボリュームに対するデータの読み取りと書き込みを行い、インジェストからモデルデプロイまでのエンドツーエンドのデータ サイエンス ワークフローをサポートします。
Azure Databricks に接続するには、初期化 (init) スクリプトを構成して、Databricks コンピューティング エンドポイントに SSL 証明書を読み込みます。 このセットアップを使用すると、Azure Databricks と Azure NetApp Files オブジェクト REST API 対応ボリューム間の安全な通信が保証されます。
開始する前に
以下を必ず持っていることを確認してください。
init スクリプトを作成する
init スクリプトは、クラスターの起動中に実行されます。 init スクリプトの詳細については、「init スクリプトとは」を参照してください。
SSL 証明書を読み込む bash スクリプトを記述します。 .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/hostsDatabricks CLI または Databricks UI を使用して、Bash スクリプトを Databricks ファイル システム (DBFS) にアップロードします。 詳細については、 Azure Databricks 上のファイルの操作に関するページを参照してください。
クラスターを構成する
Azure Databricks ワークスペースに移動します。 クラスター構成設定を開きます。
[ 詳細オプション] セクションで、[Init スクリプト] の下にある init スクリプトへのパスを追加します。 例:
dbfs:/path/to/your/script.shinit.sh スクリプトを選択します。 追加を選択し、次に確認を選択します。
Azure NetApp Files バケットに接続する
Databricks では、すべての資格情報を格納するためにシークレット スコープを使用することをお勧めします。 詳細については、「 シークレット スコープの管理」を参照してください。
Databricks ノートブックで、Azure NetApp Files バケットに接続するように Spark セッションを構成します。 例えば次が挙げられます。
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()