Databricks Notebook 실행 컨텍스트

클러스터에 Notebook을 연결하면 Azure Databricks가 실행 컨텍스트를 만듭니다. 실행 컨텍스트에는 지원되는 각 프로그래밍 언어(Python, R, Scala, SQL)에 대한 REPL 환경의 상태가 포함됩니다. Notebook에서 셀을 실행하면 명령이 적절한 언어 REPL 환경에 전달되어 실행됩니다.

명령 실행 API사용하여 실행 컨텍스트를 만들고 실행 컨텍스트에서 실행할 명령을 보낼 수도 있습니다. 마찬가지로 명령은 언어 REPL 환경으로 전달되어 실행됩니다.

클러스터에는 최대 실행 컨텍스트 수(145개)가 있습니다. 실행 컨텍스트 수가 이 임계값에 도달하면 Notebook을 클러스터에 연결하거나 새 실행 컨텍스트를 만들 수 없습니다.

유휴 실행 컨텍스트

마지막으로 완료된 실행이 설정된 유휴 임계값을 초과하여 발생한 경우 실행 컨텍스트는 유휴로 간주됩니다. 마지막으로 완료된 실행은 Notebook에서 명령 실행을 완료한 마지막 시간입니다. 유휴 임계값은 마지막으로 완료된 실행과 Notebook을 자동으로 분리하려는 시도 간에 경과해야 하는 시간입니다.

클러스터가 최대 컨텍스트 제한에 도달하면 Azure Databricks에서 필요에 따라 유휴 실행 컨텍스트(가장 최근에 사용한 컨텍스트부터 시작)를 제거합니다. 컨텍스트가 제거된 경우에도 해당 컨텍스트를 사용하는 Notebook은 여전히 클러스터에 연결되어 클러스터의 Notebook 목록에 표시됩니다. Notebook 스트리밍이 활발하게 실행되는 것으로 간주되어 실행이 중지될 때까지 해당 컨텍스트가 제거되지 않습니다. 유휴 컨텍스트가 제거되면 UI에서 유휴 상태로 인해 이 컨텍스트를 사용하는 Notebook이 분리되었다는 메시지를 표시합니다.

Notebook 컨텍스트가 제거됨

실행 컨텍스트 수가 최대이고 유휴 컨텍스트가 없는 클러스터에 Notebook을 연결하려고 하면(또는 자동 제거가 사용하지 않도록 설정된 경우) UI에서 현재 최대 실행 컨텍스트 임계값에 도달했으며 Notebook이 분리된 상태로 유지된다는 메시지를 표시합니다.

Notebook이 분리됨

프로세스를 포크하는 경우 해당 프로세스를 포크한 요청의 실행이 반환되면 유휴 실행 컨텍스트가 여전히 유휴 상태로 간주됩니다. Spark에서 별도의 프로세스를 포크하지 않는 것이 좋습니다.

컨텍스트 자동 제거 구성

자동 제거는 기본적으로 사용하도록 설정됩니다. 자동 제거를 클러스터에 사용하지 않도록 설정하려면 Spark 속성spark.databricks.chauffeur.enableIdleContextTracking false을 설정합니다.

Spark 및 Databricks Runtime 버전 확인

Notebook이 연결된 클러스터의 Spark 버전을 확인하려면 다음을 실행합니다.

spark.version

Notebook이 연결된 클러스터의 Databricks Runtime 버전을 확인하려면 다음을 실행합니다.

spark.conf.get("spark.databricks.clusterUsageTags.sparkVersion")

참고 항목

sparkVersion 태그와 클러스터 API 및 spark_version 작업 API의 엔드포인트에 필요한 속성은 모두 Spark 버전이 아닌 Databricks 런타임 버전을 참조합니다.