다음을 통해 공유


Azure NetApp Files 개체 REST API 사용 볼륨에 Azure Databricks 연결

개체 REST API 기능을 사용하면 Azure Databricks에서 데이터를 읽고 Azure NetApp Files 볼륨에 쓸 수 있으며, 수집에서 모델 배포에 이르는 엔드투엔드 데이터 과학 워크플로를 지원합니다.

Azure Databricks에 연결하려면 Databricks 컴퓨팅 엔드포인트에서 SSL 인증서를 로드하도록 초기화(init) 스크립트를 구성합니다. 이 설정을 사용하면 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 스크립트를 DBFS(Databricks 파일 시스템)에 업로드합니다. 자세한 내용은 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 Notebook에서 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() 
    

    성공적인 읽기 작업의 스크린샷.

추가 정보