라이브러리
클러스터에서 실행 중인 Notebooks 및 작업에서 타사 또는 사용자 지정 코드를 사용할 수 있도록 하려면 라이브러리를 설치하면 됩니다. 라이브러리는 Python, Java, Scala 및 R로 작성할 수 있습니다. Python, Java 및 Scala 라이브러리를 업로드하고 PyPI, Maven 및 CRAN 리포지토리의 외부 패키지를 가리킬 수 있습니다.
Azure Databricks에는 Databricks Runtime에 많은 일반 라이브러리가 포함되어 있습니다. Databricks Runtime에 포함된 라이브러리를 확인하려면 Databricks Runtime 버전에 대한 Databricks Runtime 릴리스 정보의 시스템 환경 하위 섹션을 참조하세요.
참고 항목
Microsoft 지원은 Azure Databricks에서 설치 및 유지 관리하는 라이브러리와 관련된 문제를 격리하고 해결하는 데 도움이 됩니다. 라이브러리를 비롯한 타사 구성 요소의 경우 Microsoft는 문제 해결에 도움이 되도록 상업적으로 합리적인 지원을 제공합니다. Microsoft 지원은 최상의 방법으로 지원하며 문제를 해결할 수 있습니다. Github에서 호스트되는 오픈 소스 커넥터 및 프로젝트의 경우 Github에서 문제를 제기하고 후속 작업을 진행하는 것이 좋습니다. jar 음영 또는 Python 라이브러리 빌드와 같은 개발 활동은 표준 지원 사례 전송 프로세스를 통해 지원되지 않습니다. 더 빠른 해결을 위해 컨설팅 참여가 필요합니다. 지원 팀에서 심층적인 전문 지식을 찾을 수 있는 다른 오픈 소스 기술 채널에 참여하도록 요청할 수도 있습니다. 여러 커뮤니티 사이트가 있는 데, 그 중 두 가지 예로는 Azure Databasericks를 위한 Microsoft Q&A 페이지와 Stack Overflow가 있습니다.
클러스터 범위 라이브러리
클러스터에서 실행되는 모든 Notebook 및 작업에서 사용할 수 있도록 클러스터에 라이브러리를 설치할 수 있습니다. Databricks는 Python, JAR 및 R 라이브러리를 지원합니다. 클러스터 라이브러리를 참조하세요.
다음 원본에서 직접 클러스터 라이브러리를 설치할 수 있습니다.
- PyPI, Maven 또는 CRAN과 같은 패키지 리포지토리
- 작업 영역 파일
- Unity 카탈로그 볼륨
- 클라우드 개체 스토리지 위치
- 로컬 컴퓨터의 경로
모든 유형의 라이브러리 또는 모든 컴퓨팅 구성에 대해 모든 위치가 지원되는 것은 아닙니다. 구성 권장 사항에 대한 라이브러리 업로드에 대한 권장 사항을 참조하세요.
Important
Databricks Runtime 14.3 LTS 이하를 사용하는 경우 DBFS에서 라이브러리를 설치할 수 있습니다. 그러나 모든 작업 영역 사용자는 DBFS에 저장된 라이브러리 파일을 수정할 수 있습니다. Azure Databricks 작업 영역에서 라이브러리의 보안을 강화하기 위해 DBFS 루트에 라이브러리 파일을 저장하는 것은 기본적으로 Databricks Runtime 15.1 이상에서 사용되지 않으며 비활성화됩니다. DBFS 루트에 라이브러리 저장이 기본적으로 사용되지 않고 비활성화됨을 참조하세요.
대신 Databricks는 Python 라이브러리, JAR 파일, Spark 커넥터를 포함한 모든 라이브러리를 작업 영역 파일 또는 Unity 카탈로그 볼륨에 업로드하거나 라이브러리 패키지 리포지토리를 사용할 것을 권장합니다. 워크로드가 이러한 패턴을 지원하지 않는 경우 클라우드 개체 스토리지에 저장된 라이브러리를 사용할 수도 있습니다.
전체 라이브러리 지원 정보는 Python 라이브러리 지원, Java 및 Scala 라이브러리 지원 및 R 라이브러리 지원을 참조하세요.
라이브러리 업로드에 대한 권장 사항
Databricks는 Python, JAR 및 R 라이브러리의 대부분의 구성 설치를 지원하지만 지원되지 않는 몇 가지 시나리오가 있습니다. 모든 워크로드에 권장되는 모드이므로 공유 액세스 모드를 사용하여 컴퓨팅에 설치를 지원하는 원본 위치에 라이브러리를 업로드하는 것이 좋습니다. 액세스 모드를 참조하세요. 공유 액세스 모드로 작업을 예약할 때 서비스 주체를 사용하여 작업을 실행합니다.
Important
필요한 기능이 공유 액세스 모드에서 지원되지 않는 경우에만 단일 사용자 액세스 모드로 컴퓨팅을 사용합니다. 격리 공유 액세스 모드는 권장되지 않는 Databricks의 레거시 구성이 아닙니다.
다음 표에서는 Databricks 런타임 버전 및 Unity 카탈로그 사용으로 구성된 권장 사항을 제공합니다.
구성 | 추천 |
---|---|
Unity 카탈로그를 사용하는 Databricks Runtime 13.3 LTS 이상 | 모든 계정 사용자에 대해 GRANT READ를 사용하여 Unity 카탈로그 볼륨의 공유 액세스 모드를 사용하여 컴퓨팅에 라이브러리를 설치합니다. 해당하는 경우 Maven 좌표 및 JAR 라이브러리 경로를 허용 목록에 추가해야 합니다. |
Unity 카탈로그가 없는 Databricks Runtime 11.3 LTS 이상 | 작업 영역 파일에서 라이브러리를 설치합니다. 파일 크기 제한은 500MB입니다. |
Databricks Runtime 10.4 LTS 이하 | 클라우드 개체 스토리지에서 라이브러리를 설치합니다. |
Python 라이브러리 지원
다음 표에서는 라이브러리 원본 위치에 따라 다양한 클러스터 액세스 모드에 대한 Python 휠 파일에 대한 Databricks 런타임 버전 호환성을 나타냅니다. Databricks 런타임 릴리스 정보 버전 및 호환성 및 액세스 모드를 참조하세요.
Databricks Runtime 15.0 이상에서는 requirements.txt 파일을 사용하여 Python 종속성을 관리할 수 있습니다. 이러한 파일은 지원되는 모든 원본 위치에 업로드할 수 있습니다.
참고 항목
Python Egg 파일 설치는 Databricks Runtime 14.0 이상에서 지원되지 않습니다. 대신 Python 휠 파일을 사용하거나 PyPI에서 패키지를 설치합니다.
공유 액세스 모드 | 단일 사용자 액세스 모드 | 격리 공유 액세스 모드 없음(레거시) | |
---|---|---|---|
PyPI | 13.3 LTS 이상 | 지원되는 모든 Databricks 런타임 버전 | 지원되는 모든 Databricks 런타임 버전 |
작업 영역 파일 | 13.3 LTS 이상 | 13.3 LTS 이상 | 14.1 이상 |
볼륨 | 13.3 LTS 이상 | 13.3 LTS 이상 | 지원되지 않음 |
클라우드 저장소 | 13.3 LTS 이상 | 지원되는 모든 Databricks 런타임 버전 | 지원되는 모든 Databricks 런타임 버전 |
DBFS (권장되지 않음) | 지원되지 않음 | 14.3 이하 | 14.3 이하 |
Java 및 Scala 라이브러리 지원
다음 표는 라이브러리 원본 위치에 따라 다양한 클러스터 액세스 모드에 대한 JAR 파일에 대한 Databricks 런타임 버전 호환성을 나타냅니다. Databricks 런타임 릴리스 정보 버전 및 호환성 및 액세스 모드를 참조하세요.
참고 항목
공유 액세스 모드를 사용하려면 관리자가 JAR 라이브러리에 대한 Maven 좌표 및 경로를 allowlist
에 추가해야 합니다. 공유 컴퓨팅의 허용 목록 라이브러리 및 초기화 스크립트를 참조하세요.
공유 액세스 모드 | 단일 사용자 액세스 모드 | 격리 공유 액세스 모드 없음(레거시) | |
---|---|---|---|
Maven | 13.3 LTS 이상 | 지원되는 모든 Databricks 런타임 버전 | 지원되는 모든 Databricks 런타임 버전 |
작업 영역 파일 | 지원되지 않음 | 지원되지 않음 | 14.1 이상 |
볼륨 | 13.3 LTS 이상 | 13.3 LTS 이상 | 지원되지 않음 |
클라우드 저장소 | 13.3 LTS 이상 | 지원되는 모든 Databricks 런타임 버전 | 지원되는 모든 Databricks 런타임 버전 |
DBFS (권장되지 않음) | 지원되지 않음 | 14.3 이하 | 14.3 이하 |
R 라이브러리 지원
다음 표는 여러 클러스터 액세스 모드에 대한 CRAN 패키지에 대한 Databricks 런타임 버전 호환성을 나타냅니다. Databricks 런타임 릴리스 정보 버전 및 호환성 및 액세스 모드를 참조하세요.
공유 액세스 모드 | 단일 사용자 액세스 모드 | 격리 공유 액세스 모드 없음(레거시) | |
---|---|---|---|
CRAN | 지원되지 않음 | 지원되는 모든 Databricks 런타임 버전 | 지원되는 모든 Databricks 런타임 버전 |
Notebook 범위의 라이브러리
Python 및 R에 사용할 수 있는 Notebook 범위 라이브러리를 사용하면 라이브러리를 설치하고 Notebook 세션으로 범위가 지정된 환경을 만들 수 있습니다. 이러한 라이브러리는 동일한 클러스터에서 실행되는 다른 Notebook에 영향을 미치지 않습니다. Notebook 범위 라이브러리는 유지되지 않으며 각 세션에 대해 다시 설치해야 합니다. 특정 Notebook에 사용자 지정 환경이 필요한 경우 Notebook 범위의 라이브러리를 사용합니다.
참고 항목
전자 필기장 수준에서 JAR을 설치할 수 없습니다.
Important
작업 영역 라이브러리는 더 이상 사용되지 않으며 사용해서는 안 됩니다. 작업 영역 라이브러리(레거시)를 참조하세요. 그러나 라이브러리를 작업 영역 파일로 저장하는 것은 작업 영역 라이브러리와는 별개이며 여전히 완전히 지원됩니다. 작업 영역 파일로 저장된 라이브러리를 직접 설치하여 컴퓨팅 또는 작업 태스크를 수행할 수 있습니다.
Python 환경 관리
다음 표에서는 Azure Databricks에 Python 라이브러리를 설치하는 데 사용할 수 있는 옵션의 개요를 제공합니다.
참고 항목
- conda 기반 환경을 사용하는 사용자 지정 컨테이너는 Notebook 범위 라이브러리 및 Databricks Runtime 10.4 LTS 이상의 클러스터 라이브러리와 호환되지 않습니다. 대신 Azure Databricks는 이미지에 직접 라이브러리를 설치하거나 초기화 스크립트를 사용하는 것이 좋습니다. 이러한 시나리오에서 클러스터 라이브러리를 계속 사용하려면 Spark 구성
spark.databricks.driverNfs.clusterWidePythonLibsEnabled
을false
로 설정할 수 있습니다. Spark 구성에 대한 지원은 2021년 12월 31일 이후에 제거됩니다.
Python 패키지 원본 | %pip를 사용하는 Notebook 범위 라이브러리 | 기본 환경 YAML 파일이 있는 Notebook 범위 라이브러리 | 클러스터 라이브러리 | 작업 API를 사용하는 작업 라이브러리 |
---|---|---|---|---|
PyPI | %pip install 을 사용합니다. 예제를 참조하세요. |
기본 환경 YAML 파일에 PyPI 패키지 이름을 추가합니다. 예제를 참조하세요. | 원본으로 PyPI를 선택합니다. | 작업 라이브러리에 새 pypi 개체를 추가하고 필드를 지정합니다 package . |
Nexus 또는 Artifactory와 같은 프라이빗 PyPI 미러 | --index-url 옵션과 함께 %pip install 을 사용합니다. 비밀 관리를 사용할 수 있습니다. 예제를 참조하세요. |
-–index-url 기본 환경 YAML 파일에 추가합니다. 비밀 관리를 사용할 수 있습니다. 예제를 참조하세요. |
지원되지 않습니다. | 지원되지 않습니다. |
원시 원본이 있는 GitHub와 같은 VCS | %pip install 을 사용하고 리포지토리 URL을 패키지 이름으로 지정합니다. 예제를 참조하세요. |
기본 환경 YAML 파일에 패키지 이름으로 리포지토리 URL을 추가합니다. 예제를 참조하세요. | PyPI를 원본으로 선택하고 리포지토리 URL을 패키지 이름으로 지정합니다. | 작업 라이브러리에 새 pypi 개체를 추가하고 리포지토리 URL을 package 필드로 지정합니다. |
원시 원본이 있는 프라이빗 VCS | %pip install 을 사용하고 기본 인증이 있는 리포지토리 URL을 패키지 이름으로 지정합니다. 비밀 관리를 사용할 수 있습니다. 예제를 참조하세요. |
기본 인증을 사용하는 리포지토리를 기본 환경 YAML 파일에 패키지 이름으로 추가합니다. 예제를 참조하세요. | 지원되지 않습니다. | 지원되지 않습니다. |
파일 경로 | %pip install 을 사용합니다. 예제를 참조하세요. |
기본 환경 YAML 파일에 파일 경로를 패키지 이름으로 추가합니다. 예제를 참조하세요. | 원본으로 파일 경로/ADLS를 선택합니다. | 작업 라이브러리에 새 egg 개체 또는 whl 개체를 추가하고 파일 경로를 필드로 package 지정합니다. |
Azure Data Lake Storage Gen2 | 미리 서명된 URL과 함께 사용합니다 %pip install . Azure Data Lake Storage Gen2 프로토콜 abfss:// 을 사용하는 경로는 지원되지 않습니다. |
미리 서명된 URL을 기본 환경 YAML 파일에 패키지 이름으로 추가합니다. Azure Data Lake Storage Gen2 프로토콜 abfss:// 을 사용하는 경로는 지원되지 않습니다. |
원본으로 파일 경로/ADLS를 선택합니다. | 작업 라이브러리에 새 egg 개체 또는 whl 개체를 추가하고 Azure Data Lake Storage Gen2 경로를 필드로 package 지정합니다. |
Python 라이브러리 우선 순위
기본 제공 라이브러리의 버전을 재정의하거나 클러스터에 설치된 다른 라이브러리와 이름에 충돌하는 사용자 지정 라이브러리가 있는 상황이 발생할 수 있습니다. 실행 import <library>
하면 우선 순위가 높은 라이브러리를 가져옵니다.
Important
작업 영역 파일에 저장된 라이브러리는 Python sys.path
에 추가되는 방법에 따라 우선 순위가 다릅니다. Databricks Git 폴더는 다른 모든 라이브러리 앞에 현재 작업 디렉터리를 경로에 추가하는 반면 Git 폴더 외부의 Notebook은 다른 라이브러리가 설치된 후 현재 작업 디렉터리를 추가합니다. 경로에 작업 영역 디렉터리를 수동으로 추가하는 경우 항상 우선 순위가 가장 낮습니다.
다음 목록에서는 우선 순위를 가장 높은 순서에서 가장 낮은 순서로 정렬합니다. 이 목록에서 숫자가 낮을수록 우선 순위가 높아질 수 있습니다.
- 현재 작업 디렉터리의 라이브러리(Git 폴더에만 해당).
- Git 폴더 루트 디렉터리의 라이브러리(Git 폴더에만 해당).
- Notebook 범위 라이브러리(
%pip install
Notebook)입니다. - 클러스터 라이브러리(UI, CLI 또는 API 사용)
- Databricks 런타임에 포함된 라이브러리입니다.
- init 스크립트와 함께 설치된 라이브러리는 설치 방법에 따라 기본 제공 라이브러리 전후에 확인할 수 있습니다. Databricks는 init 스크립트를 사용하여 라이브러리를 설치하지 않는 것이 좋습니다.
- 현재 작업 디렉터리의 라이브러리(Git 폴더가 아님).
- 에 추가된
sys.path
작업 영역 파일