Azure Synapse Analytics에서 Apache Spark 풀용 라이브러리 관리
Spark 애플리케이션에 사용하거나 업데이트할 Scala 및 Java, R(미리 보기) 또는 Python 패키지를 식별한 후에는 Spark 풀에 설치하거나 제거할 수 있습니다. 풀 수준 라이브러리는 풀에서 실행되는 모든 Notebook 및 작업에 사용할 수 있습니다.
Spark 풀에 라이브러리를 설치하는 기본 방법에는 다음 두 가지가 있습니다.
- 작업 영역 패키지로 업로드된 작업 영역 라이브러리를 설치합니다.
- Python 라이브러리를 업데이트하려면 PyPI, Conda-Forge 등의 리포지토리에서 패키지를 설치하는 requirements.txt 또는 Conda environment.yml 환경 사양을 제공합니다. 자세한 내용은 환경 사양에 대한 섹션을 참조하세요.
변경 내용이 저장되면 Spark 작업은 설치를 실행하고 나중에 다시 사용할 수 있도록 결과 환경을 캐시합니다. 작업이 완료되면 새 Spark 작업 또는 Notebook 세션에서 업데이트된 풀 라이브러리를 사용합니다.
Important
- 설치하는 패키지가 크거나 설치하는 데 시간이 오래 걸리는 경우 Spark 인스턴스 시작 시간에 영향을 줍니다.
- PySpark, Python, Scala/Java, .NET, R 또는 Spark 버전 변경은 지원되지 않습니다.
- PyPI, Conda-Forge 또는 기본 Conda 채널과 같은 외부 리포지토리에서 패키지를 설치하는 작업은 데이터 반출 방지 지원 작업 영역 내에서 지원되지 않습니다.
Synapse Studio 또는 Azure Portal에서 패키지 관리
Spark 풀 라이브러리는 Synapse Studio 또는 Azure Portal에서 관리할 수 있습니다.
Spark 풀에 라이브러리를 업데이트하거나 추가하려면 다음을 수행합니다.
Azure Portal에서 Azure Synapse Analytics 작업 영역으로 이동합니다.
Azure Portal에서 업데이트하는 경우:
Synapse Studio에서 업데이트하는 경우:
Python 피드 라이브러리의 경우 페이지의 패키지 섹션에서 파일 선택기를 사용하여 환경 구성 파일을 업로드합니다.
추가 작업 영역 패키지를 선택하여 Jar, Wheel 또는 Tar.gz 파일을 풀에 추가할 수도 있습니다.
작업 영역 패키지 섹션에서 더 이상 사용되지 않는 패키지를 제거할 수도 있습니다. 그러면 풀은 더 이상 이러한 패키지를 연결하지 않습니다.
변경 내용을 저장하면 시스템 작업이 트리거되어 지정된 라이브러리를 설치하고 캐시합니다. 이 프로세스를 통해 전체 세션 시작 시간을 줄일 수 있습니다.
작업이 성공적으로 완료되면 모든 새 세션에서 업데이트된 풀 라이브러리를 선택합니다.
Important
새 설정을 강제 적용하는 옵션을 선택하면 선택한 Spark 풀의 모든 현재 세션이 종료됩니다. 세션이 종료되면 풀이 다시 시작될 때까지 기다려야 합니다.
이 설정을 선택하지 않으면 현재 Spark 세션이 종료될 때까지 기다리거나 수동으로 중지해야 합니다. 세션이 종료되면 풀을 다시 시작하도록 해야 합니다.
설치 진행률 추적
시스템 예약 Spark 작업은 새 라이브러리 집합으로 풀이 업데이트될 때마다 시작됩니다. 이 Spark 작업은 라이브러리 설치 상태를 모니터링하는 데 도움이 됩니다. 라이브러리 충돌이나 기타 문제로 인해 설치가 실패하는 경우 Spark 풀이 이전 또는 기본 상태로 되돌아갑니다.
또한 사용자는 설치 로그를 검사하여 종속성 충돌을 식별하거나 풀 업데이트 중에 설치된 라이브러리를 확인할 수 있습니다.
이 로그를 보려면:
- 모니터 탭에서 Spark 애플리케이션 목록으로 이동합니다.
- 풀 업데이트에 해당하는 시스템 Spark 애플리케이션 작업을 선택합니다. 이 시스템 작업은 SystemReservedJob-LibraryManagement 제목으로 실행됩니다.
- 전환하여 driver 및 stdout 로그를 봅니다.
- 결과 내에서 종속성 설치와 관련된 로그가 표시됩니다.
환경 사양 형식
PIP requirements.txt
requirements.txt 파일(pip freeze
명령에서 출력)을 사용하여 환경을 업그레이드할 수 있습니다. 풀이 업데이트되면 이 파일에 나열된 패키지가 PyPI에서 다운로드됩니다. 그런 다음 풀을 나중에 다시 사용할 수 있도록 전체 종속성이 캐시되어 저장됩니다.
다음 조각에서는 요구 사항 파일의 형식을 설명합니다. PyPI 패키지 이름은 정확한 버전과 함께 나열됩니다. 이 파일은 pip 고정 참조 설명서에 설명된 형식을 따릅니다.
이 예제에서는 특정 버전을 고정합니다.
absl-py==0.7.0
adal==1.2.1
alabaster==0.7.10
YML 형식
또한 environment.yml 파일을 제공하여 풀 환경을 업데이트할 수도 있습니다. 이 파일에 나열된 패키지는 기본 Conda 채널, Conda-Forge 및 PyPI에서 다운로드됩니다. 구성 옵션을 사용하여 다른 채널을 지정하거나 기본 채널을 제거할 수 있습니다.
이 예제에서는 채널과 Conda/PyPI 종속성을 지정합니다.
name: stats2
channels:
- defaults
dependencies:
- bokeh
- numpy
- pip:
- matplotlib
- koalas==1.7.0
이 environment.yml 파일에서 환경을 만드는 방법에 대한 자세한 내용은 environment.yml 파일에서 환경 만들기를 참조하세요.
다음 단계
- 기본 라이브러리 보기: Apache Spark 버전 지원
- 라이브러리 설치 오류 문제 해결: 라이브러리 오류 문제 해결