次の方法で共有


Azure Databricks を Azure NetApp Files オブジェクト REST API 対応ボリュームに接続する

オブジェクト REST API 機能を使用すると、Azure Databricks は Azure NetApp Files ボリュームに対するデータの読み取りと書き込みを行い、インジェストからモデルデプロイまでのエンドツーエンドのデータ サイエンス ワークフローをサポートします。

Azure Databricks に接続するには、初期化 (init) スクリプトを構成して、Databricks コンピューティング エンドポイントに SSL 証明書を読み込みます。 このセットアップを使用すると、Azure Databricks と Azure NetApp Files オブジェクト REST API 対応ボリューム間の安全な通信が保証されます。

開始する前に

以下を必ず持っていることを確認してください。

init スクリプトを作成する

init スクリプトは、クラスターの起動中に実行されます。 init スクリプトの詳細については、「init スクリプトとは」を参照してください。

  1. 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/hosts 
    
  2. Databricks CLI または Databricks UI を使用して、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 ノートブックで、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") 
    
  2. 単純な読み取り操作を実行して、接続を確認します。 例えば次が挙げられます。

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

    正常な読み取り操作のスクリーンショット。

詳細情報