Init 스크립트는 클러스터에 있는 환경 변수에 액세스할 수 있습니다.
참고
이 페이지는 클래식 컴퓨트에서 init 스크립트의 환경 변수를 설명합니다. 서버리스 Lakeflow Jobs 작업에서 애플리케이션 코드에 환경 변수를 전달하려면 '서버 없는 작업용 환경 변수 구성'을 참조하세요.
참고
Databricks Runtime 19 이상의 표준 액세스 모드 에서는 미리 정의된 환경 변수 집합만 스크립트를 초기화할 수 있습니다. 클러스터에서 설정한 다른 변수는 UDF를 포함하여 사용자 코드에서 계속 사용할 수 있지만 스크립트를 초기화할 수는 없습니다. 환경 변수 제한 사항을 참조하세요.
기본 환경 변수
Azure Databricks init 스크립트 논리에 유용할 수 있는 많은 기본 변수를 설정합니다. 클러스터 범위 및 글로벌 init 스크립트는 다음 환경 변수를 지원합니다.
-
DB_CLUSTER_ID: 스크립트가 실행 중인 클러스터의 ID입니다. 클러스터 API를 참조하세요. -
DB_CONTAINER_IP: Spark가 실행되는 컨테이너의 개인 IP 주소입니다. init 스크립트는 이 컨테이너 내에서 실행됩니다. 클러스터 API를 참조하세요. -
DB_IS_DRIVER: 스크립트가 드라이버 노드에서 실행 중인지 여부입니다. -
DB_DRIVER_IP: 드라이버 노드의 IP 주소입니다. -
DB_INSTANCE_TYPE: 호스트 VM의 인스턴스 유형입니다. -
DB_CLUSTER_NAME: 스크립트가 실행 중인 클러스터의 이름입니다. -
DB_IS_JOB_CLUSTER: 작업을 실행하기 위해 클러스터를 만들었는지 여부입니다. 작업용 컴퓨팅 구성을 참조하세요.
이러한 미리 정의된 환경 변수는 재정의할 수 없습니다.
사용자 지정 환경 변수 설정
컴퓨팅 리소스에서 실행되는 init 스크립트 에서 액세스할 수 있는 사용자 지정 환경 변수는 Spark 구성에서 설정할 수 있습니다. 환경 변수를 참조하세요.
spark_env_vars의 필드를 사용하여 환경 변수를 설정할 수도 있습니다.
환경 변수 사용
다음 예제에서는 기본 환경 변수를 사용하여 드라이버 노드에서만 스크립트의 일부를 실행합니다.
echo $DB_IS_DRIVER
if [[ $DB_IS_DRIVER = "TRUE" ]]; then
<run this part only on driver>
else
<run this part only on workers>
fi
<run this part on both driver and workers>
init 스크립트의 비밀
비밀을 참조할 때 유효한 변수 이름을 사용할 수 있습니다. 환경 변수에서 참조되는 비밀에 대한 액세스는 클러스터를 구성한 사용자의 권한에 따라 결정됩니다. 환경 변수에 저장된 비밀은 클러스터의 모든 사용자가 액세스할 수 있지만 일반 텍스트 표시에서 삭제됩니다.
Spark 구성 속성이나 환경 변수의 비밀 사용을 참조하세요.