클러스터 범위 init 스크립트 사용

클러스터 범위의 init 스크립트는 클러스터 구성에 정의된 init 스크립트입니다. 클러스터 범위의 init 스크립트는 사용자가 만든 클러스터와 작업을 실행하기 위해 만든 클러스터 모두에 적용됩니다.

UI, CLI를 사용하고 클러스터 API를 호출하여 클러스터 범위의 init 스크립트를 구성할 수 있습니다. 이 섹션에서는 UI를 사용하여 이러한 작업을 수행하는 방법을 중점적으로 설명합니다. 다른 방법은 Databricks CLI 및 클러스터 API참조하세요.

원하는 수의 스크립트를 추가할 수 있으며 스크립트는 제공된 순서대로 순차적으로 실행됩니다.

클러스터 범위의 init 스크립트가 0이 아닌 종료 코드를 반환하면 클러스터 시작이 실패합니다. 클러스터 로그 배달을 구성하고 init 스크립트 로그를 검사하여 클러스터 범위 init 스크립트 문제를 해결할 수 있습니다. Init 스크립트 로깅을 참조하세요.

UI를 사용하여 클러스터 범위의 init 스크립트 구성

이 섹션에는 Azure Databricks UI를 사용하여 init 스크립트를 실행하도록 클러스터를 구성하는 방법에 대한 지침이 포함되어 있습니다.

Databricks는 모든 init 스크립트를 클러스터 범위 init 스크립트로 관리하는 것이 좋습니다. 공유 또는 단일 사용자 액세스 모드로 컴퓨팅을 사용하는 경우 Init 스크립트를 Unity 카탈로그 볼륨에 저장합니다. 격리되지 않은 공유 액세스 모드로 컴퓨팅을 사용하는 경우 init 스크립트에 작업 영역 파일을 사용합니다.

공유 액세스 모드의 경우 init 스크립트를 allowlist에 추가해야 합니다. 공유 컴퓨팅의 허용 목록 라이브러리 및 초기화 스크립트를 참조 하세요.

UI를 사용하여 init 스크립트를 실행하도록 클러스터를 구성하려면 다음 단계를 완료합니다.

  1. 클러스터 구성 페이지에서 고급 옵션 토글을 클릭합니다.
  2. 페이지 아래쪽에서 Init 스크립트 탭을 클릭합니다.
  3. 원본 드롭다운에서 작업 영역, 볼륨 또는 ABFSS 원본 유형을 선택합니다.
  4. 다음 예제 중 하나와 같이 init 스크립트의 경로를 지정합니다.
    • 작업 영역 파일을 사용하여 홈 디렉터리에 저장된 init 스크립트의 경우: /Users/<user-name>/<script-name>.sh.
    • Unity 카탈로그 볼륨과 함께 저장된 init 스크립트의 경우: /Volumes/<catalog>/<schema>/<volume>/<path-to-script>/<script-name>.sh.
    • 개체 스토리지와 함께 저장된 init 스크립트의 경우: abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/init-script.
  5. 추가를 클릭합니다.

단일 사용자 액세스 모드에서는 할당된 보안 주체(사용자 또는 서비스 주체)의 ID가 사용됩니다.

공유 액세스 모드에서는 클러스터 소유자의 ID가 사용됩니다.

참고 항목

격리되지 않은 공유 액세스 모드는 볼륨을 지원하지 않지만 공유 액세스 모드와 동일한 ID 할당을 사용합니다.

클러스터 구성에서 스크립트를 제거하려면 스크립트 오른쪽에 있는 휴지통 아이콘을 클릭합니다. 삭제를 확인하면 클러스터를 다시 시작하라는 메시지가 표시됩니다. 필요에 따라 스크립트 파일을 업로드한 위치에서 삭제할 수 있습니다.

참고 항목

ABFSS 원본 유형을 사용하여 init 스크립트를 구성하는 경우 액세스 자격 증명을 구성해야 합니다.

Databricks는 Microsoft Entra ID 서비스 주체를 사용하여 Azure Data Lake Storage Gen2에 저장된 init 스크립트에 대한 액세스를 관리하는 것이 좋습니다. 다음 연결된 설명서를 사용하여 이 설정을 완료합니다.

  1. 원하는 Blob에 대한 읽기 및 목록 권한이 있는 서비스 주체를 만듭니다. 서비스 주체 및 Microsoft Entra ID(Azure Active Directory)를 사용하여 Access Storage를 참조하세요.

  2. 비밀을 사용하여 자격 증명을 저장합니다. 비밀을 참조하세요.

  3. 다음 예제와 같이 클러스터를 만드는 동안 Spark 구성 및 환경 변수의 속성을 설정합니다.

    Spark 구성:

    spark.hadoop.fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net OAuth
    spark.hadoop.fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider
    spark.hadoop.fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net <application-id>
    spark.hadoop.fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net {{secrets/<secret-scope>/<service-credential-key>}}
    spark.hadoop.fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net https://login.microsoftonline.com/<tenant-id>/oauth2/token
    

    환경 변수:

    SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
    
  4. (선택 사항) azcopy 또는 Azure CLI를 사용하여 init 스크립트를 리팩터링합니다.

    init 스크립트 내에서 클러스터 구성 중에 설정된 환경 변수를 참조하여 유효성 검사를 위해 비밀로 저장된 자격 증명을 전달할 수 있습니다.

Warning

DBFS의 클러스터 범위 init 스크립트는 수명이 종료됩니다. UI의 DBFS 옵션은 레거시 워크로드를 지원하기 위해 일부 작업 영역에 있으며 권장되지 않습니다. DBFS에 저장된 모든 init 스크립트를 마이그레이션해야 합니다. 마이그레이션 지침은 DBFS에서 init 스크립트 마이그레이션을 참조 하세요.

클러스터 범위 init 스크립트 문제 해결

  • 스크립트는 구성된 위치에 있어야 합니다. 스크립트가 없는 경우 클러스터를 시작하거나 실행기를 강화하려고 하면 오류가 발생합니다.
  • init 스크립트는 64KB를 초과할 수 없습니다. 스크립트가 해당 크기를 초과하면 클러스터가 시작되지 않으며 클러스터 로그에 오류 메시지가 표시됩니다.