작업

작업은 Azure Databricks 클러스터에서 비 대화형 코드를 실행 하는 방법입니다. 예를 들어 ETL (추출, 변환 및 로드) 작업을 대화형으로 또는 일정에 따라 실행할 수 있습니다. 노트북 UI에서 작업을 대화형으로 실행할 수도 있습니다.

UI, CLI를 사용 하 고 작업 API를 호출 하 여 작업을 만들고 실행할 수 있습니다. UI, CLI, API 및 전자 메일 경고를 사용 하 여 작업 실행 결과를 모니터링할 수 있습니다. 이 문서에서는 UI를 사용 하 여 작업 태스크를 수행 하는 방법을 중점적으로 설명 합니다. 다른 방법은 작업 CLI작업 API 2.1을 참조 하세요.

Azure Databricks 작업 영역에서 여러 작업의 오케스트레이션을 사용 하도록 설정할 수 있습니다. 작업 오케스트레이션이 사용 하도록 설정 되 면 작업은 하나 이상의 작업으로 구성 될 수 있으며 작업의 작업 오케스트레이션, 클러스터 관리, 모니터링 및 오류 보고를 관리할 Azure Databricks. 작업 오케스트레이션이 활성화 되지 않은 작업 영역에서 작업은 단일 태스크로 구성 됩니다. Databricks는 작업 오케스트레이션이 데이터 및 기계 학습 워크플로의 생성, 관리 및 모니터링을 간소화 하도록 설정 하는 것을 권장 합니다. 작업 오케스트레이션을 활성화 하는 방법에 대 한 정보는 요구 사항 을 참조 하세요.

Azure Databricks 노트북, 델타 라이브 테이블 파이프라인 또는 Scala, Java 또는 Python으로 작성 된 응용 프로그램에서 작업을 구현할 수 있습니다. 레거시 Spark 제출 응용 프로그램도 지원 됩니다.

여러 태스크의 오케스트레이션을 사용 하는 경우 태스크 간의 종속성을 지정 하 여 태스크의 실행 순서를 제어 합니다. 작업이 순서 대로 또는 병렬로 실행 되도록 구성할 수 있습니다. 다음 다이어그램에서는 워크플로를 보여 줍니다.

  1. 수집는 원시 클릭 스트림 데이터를 처리 하 고 처리를 수행 하 여 레코드를 초기화 합니다.

  2. 데이터의 순서를 수집 하 고 sessionized 되는 클릭 스트림 데이터와 조인 하 여 분석을 위해 준비 된 데이터 집합을 만듭니다.

  3. 준비 된 데이터에서 기능을 추출 합니다.

  4. 기능을 유지 하 고 기계 학습 모델을 학습 하기 위해 작업을 병렬로 수행 합니다.

    예제 멀티태스킹을 워크플로

여러 작업을 오케스트레이션 하는 첫 번째 작업을 만들려면 작업 빠른시작을 참조 하세요.

중요

  • 데이터 과학 & 엔지니어링 작업 영역 또는 Machine Learning 작업 영역 에서만 작업을 만들 수 있습니다.
  • 작업 영역은 1000 동시 작업 실행으로 제한 됩니다. 429 Too Many Requests즉시 시작할 수 없는 실행을 요청 하면 응답이 반환 됩니다.
  • 작업 영역에서 한 시간 안에 만들 수 있는 작업 수는 5000 ("지금 실행" 및 "전송 실행" 포함)으로 제한 됩니다. 이 제한은 REST API 및 Notebook 워크플로에 의해 만들어진 작업에도 영향을 줍니다.

요구 사항

여러 작업을 오케스트레이션 하는 작업을 만들려면 관리자가 Databricks 관리 콘솔에서 지원을 사용 하도록 설정 해야 합니다.

작업 만들기

  1. 다음 중 하나를 수행합니다.

    • 사이드바에서 작업 아이콘작업 을 클릭 하 고 작업 만들기 단추를 클릭 합니다.
    • 사이드바에서 만들기 아이콘만들기 를 클릭 하 고 메뉴에서 작업 을 선택 합니다.

    작업 탭은 여러 작업의 오케스트레이션을 사용할 수 있는 경우 작업 만들기 대화 상자와 함께 나타납니다. 작업 오케스트레이션이 활성화 되어 있지 않으면 작업 탭이 표시 됩니다.

    작업 화면 만들기

  2. 작업 이름에 작업 이름 추가 를 바꿉니다.

  3. 여러 작업의 오케스트레이션을 사용 하는 경우 작업 이름 필드에 작업 이름을 입력 합니다.

  4. 실행할 작업 유형을 지정 합니다. 유형 드롭다운에서 노트북, JAR, Spark 제출, Python또는 파이프라인을 선택 합니다.

    • 노트북: 파일 브라우저를 사용 하 여 노트북을 찾고, 노트북 이름을 클릭 하 고, 확인을 클릭 합니다.

    • JAR: 주 클래스를 지정 합니다. Main 메서드를 포함 하는 클래스의 정규화 된 이름을 사용 합니다 (예:) org.apache.spark.examples.SparkPi . 그런 다음 종속 라이브러리 아래에서 추가 를 클릭 하 여 작업을 실행 하는 데 필요한 라이브러리를 추가 합니다. 이러한 라이브러리 중 하나는 주 클래스를 포함 해야 합니다.

      JAR 작업에 대해 자세히 알아보려면 jar 작업을 참조 하세요.

    • Spark 제출: 매개 변수 텍스트 상자에서 기본 클래스, 라이브러리 JAR 경로 및 모든 인수 (JSON 문자열 형식)를 지정 합니다. 다음 예제에서는 Apache Spark 예제에서를 실행 하도록 spark 전송 작업을 구성 합니다 DFSReadWriteTest .

      ["--class","org.apache.spark.examples.DFSReadWriteTest","dbfs:/FileStore/libraries/spark_examples_2_12_3_1_1.jar","/dbfs/databricks-datasets/README.md","/FileStore/examples/output/"]
      

      중요

      Spark 전송 작업에는 다음과 같은 몇 가지 제한 사항이 있습니다.

      • 새 클러스터 에서만 spark 전송 작업을 실행할 수 있습니다.
      • Spark-제출은 클러스터 자동 크기 조정을 지원 하지 않습니다. 자동 크기 조정에 대해 자세히 알아보려면 클러스터자동 크기 조정을 참조 하세요.
      • Spark-제출은 Databricks 유틸리티를 지원 하지 않습니다. Databricks 유틸리티를 사용 하려면 JAR 작업을 대신 사용 합니다.
    • Python: 경로 텍스트 상자에 dbfs 또는 클라우드 저장소에 Python 스크립트의 URI를 입력 합니다. 예를 들면 입니다.

    • 파이프라인: 파이프라인 드롭다운에서 기존 델타 라이브 테이블 파이프라인을 선택 합니다.

  5. 태스크가 실행 되는 클러스터를 구성 합니다. 클러스터 드롭다운에서 새 작업 클러스터 또는 기존 All-Purpose 클러스터중 하나를 선택 합니다.

    • 새 작업 클러스터: 클러스터 드롭다운에서 편집 을 클릭 하 고 클러스터 구성을완료 합니다.
    • 기존 All-Purpose 클러스터: 클러스터 드롭다운에서 기존 클러스터를 선택 합니다. 새 페이지에서 클러스터를 열려면 클러스터 이름과 설명의 오른쪽에 있는 외부 링크 아이콘을 클릭 합니다.

    작업을 실행할 클러스터를 선택 하 고 구성 하는 방법에 대 한 자세한 내용은 클러스터 구성 팁을 참조 하세요.

  6. 작업에 대 한 매개 변수를 전달할 수 있습니다. 각 작업 유형에는 매개 변수를 서식 지정 하 고 전달 하는 데 필요한 요구 사항이 다릅니다.

    • 노트북: 추가 를 클릭 하 고 각 매개 변수의 키와 값을 지정 하 여 작업에 전달 합니다. 다른 매개 변수를 사용 하 여 작업 실행 옵션을 사용 하 여 수동으로 작업을 실행할 때 매개 변수를 추가로 재정의 하거나 추가할 수 있습니다. 매개 변수는 매개 변수 키로 지정 된 노트북 위젯의 값을 설정 합니다. 작업 매개 변수 변수 를 사용 하 여 제한 된 동적 값 집합을 매개 변수 값의 일부로 전달 합니다.
    • JAR: JSON 형식의 문자열 배열을 사용 하 여 매개 변수를 지정 합니다. 이러한 문자열은 main 클래스의 main 메서드에 인수로 전달 됩니다. JAR 작업 매개 변수 구성을 참조 하세요.
    • Spark 전송 작업: 매개 변수는 JSON 형식 문자열 배열로 지정 됩니다. Apache Spark Spark-제출 규칙에 따라 JAR 경로 다음에 오는 매개 변수는 주 클래스의 main 메서드에 전달 됩니다.
    • Python: JSON 형식의 문자열 배열을 사용 하 여 매개 변수를 지정 합니다. 이러한 문자열은 Python의 argparse 모듈을 사용 하 여 구문 분석할 수 있는 인수로 전달 됩니다.
  7. 종속 라이브러리, 다시 시도 정책 및 시간 제한을비롯 한 추가 옵션에 액세스 하려면 고급 옵션을 클릭 합니다. 작업 편집을참조 하세요.

  8. 만들기를 클릭합니다.

  9. 작업 일정을 선택적으로 설정 하려면 작업 세부 정보 패널에서 일정 편집 을 클릭 합니다. 작업 예약을참조 하세요.

  10. 같은 작업의 동시 실행을 여러 개 허용 하려면 작업 세부 정보 패널에서 동시 실행 편집 을 클릭 합니다. 최대 동시 실행을 참조 하세요.

  11. 작업 이벤트에 대 한 경고를 받을 전자 메일 주소를 선택적으로 지정 하려면 작업 세부 정보 패널에서 경고 편집 을 클릭 합니다. 경고를 참조 하세요.

  12. 작업에 대 한 권한 수준을 선택적으로 제어 하려면 작업 세부 정보 패널에서 사용 권한 편집 을 클릭 합니다. 작업에 대 한 액세스 제어를참조 하세요.

작업 오케스트레이션이 활성화 되어 있을 때 다른 작업을 추가 하려면 방금 만든 작업 아래에 있는 작업 추가 단추 를 클릭 합니다.

작업 실행

  1. 사이드바에서 작업 아이콘작업 을 클릭 합니다.
  2. 작업을 선택 하 고 실행 탭을 클릭 합니다. 작업을 즉시 실행 하거나 나중에 작업을 실행 하도록 예약할 수 있습니다.

즉시 작업 실행

작업을 즉시 실행 하려면 지금 실행 단추를 클릭 합니다.

지금 실행을 클릭 하 여 노트북 작업으로 작업의 테스트 실행을 수행할 수 있습니다. Notebook을 변경해야 하는 경우 Notebook을 편집한 후 지금 실행을 다시 클릭하면 새 버전의 Notebook이 자동으로 실행됩니다.

다른 매개 변수를 가진 작업 실행

다른 매개 변수와 함께 지금 실행을 사용하여 기존 매개 변수에 대해 다른 매개 변수 또는 다른 값을 사용하여 작업을 다시 실행할 수 있습니다.

  1. 지금 실행 옆에 있는 Blue Down Caret를 클릭하고 다른 매개 변수를 사용하여 지금 실행을 선택하거나 활성 실행 테이블에서 다른 매개 변수를 사용하여 지금 실행을클릭합니다. 작업 유형에 따라 새 매개 변수를 입력합니다.
    • Notebook:키-값 쌍 또는 JSON 개체로 매개 변수를 입력할 수 있습니다. 이 대화 상자를 사용하여 위젯의값을 설정할 수 있습니다.
    • JARspark-submit:매개 변수 목록 또는 JSON 문서를 입력할 수 있습니다. 제공된 매개 변수는 트리거된 실행에 대한 기본 매개 변수와 병합됩니다. 키를 삭제하면 기본 매개 변수가 사용됩니다. 실행에 대한 작업 매개 변수 변수를 추가할 수도 있습니다.
  2. 실행을 클릭합니다.

작업 예약

작업의 일정을 정의하려면 다음을 수행합니다.

  1. 작업 세부 정보 패널에서 일정 편집을 클릭하고 일정 유형을예약된로 설정합니다.

  2. 기간, 시작 시간 및 표준 시간대를 지정합니다. 필요에 따라 Cron 구문 표시 확인란을 선택하여 Quartz Cron 구문에서 일정을 표시하고 편집합니다.

    참고

    • Azure Databricks cron 식의 초 구성에 관계없이 작업 일정에 의해 트리거되는 후속 실행 사이에 최소 10초 간격을 적용합니다.
    • 일광 절약 시간제 또는 UTC를 관찰하는 표준 시간대를 선택할 수 있습니다. 일광 절약 시간을 관찰하는 영역을 선택하면 일광 절약 시간이 시작되거나 종료될 때시간별 작업을 건너뛰거나 1~2시간 동안 시작되지 않는 것처럼 보일 수 있습니다. 매시간(절대 시간)에 실행하려면 UTC를 선택합니다.
    • 작업 스케줄러는 짧은 대기 시간 작업을 위한 것이 아닙니다. 네트워크 또는 클라우드 문제로 인해 작업 실행이 몇 분까지 지연될 수 있습니다. 이러한 상황에서 예약된 작업은 서비스 가용성에 따라 즉시 실행됩니다.
  3. 저장을 클릭합니다.

작업 일정 일시 중지 및 다시 시작

작업을 일시 중지하려면 다음 중 하나를 수행합니다.

  • 작업 세부 정보 패널에서 일시 중지를 클릭합니다.
  • 작업 세부 정보 패널에서 일정 편집을 클릭하고 일정 유형을수동(일시 중지)으로 설정합니다.

일시 중지된 작업 일정을 다시 시작하려면 일정 유형을예약된로 설정합니다.

작업 보기

사이드바에서 작업 아이콘작업을 클릭합니다. 작업 목록이 나타납니다. 작업 페이지에는 정의된 모든 작업, 클러스터 정의, 일정(있는 경우) 및 마지막 실행 결과가 나열됩니다.

작업 목록에서 작업을 필터링할 수 있습니다.

  • 키워드 사용.
  • 소유한 작업만 선택합니다.
  • 액세스할 수 있는 권한이 있는 모든 작업을 선택합니다. 이 필터에 액세스하려면 작업 액세스 제어를 사용하도록 설정해야 합니다.

열 머리글을 클릭하여 해당 열별로 작업 목록(내림차순 또는 오름차순)을 정렬할 수도 있습니다. 기본 정렬은 작업 이름을 오름차순으로 정렬하는 것입니다.

작업 실행 보기

  1. 사이드바에서 작업 아이콘작업을 클릭합니다.
  2. 이름 열에서 작업 이름을 클릭합니다. 실행 탭에는 활성 실행 및 완료된 실행이 표시됩니다.

작업 세부 정보

Azure Databricks 최대 60일 동안 작업 실행 기록을 유지 관리합니다. 작업 실행을 유지해야 하는 경우 Databricks는 만료되기 전에 결과를 내보내도록 권장합니다. 자세한 내용은 작업 실행 결과 내보내기 를 참조하세요.

작업 실행 세부 정보 보기

작업 실행 세부 정보 페이지에는 작업 출력과 로그에 대한 링크가 포함되어 있습니다. 여러 태스크의 오케스트레이션을 사용하는 경우 작업 실행 세부 정보 페이지에는 작업 실행에서 각 태스크의 성공 또는 실패에 대한 정보가 포함됩니다. 작업의 실행 탭에서 작업 실행 세부 정보를 액세스할 수 있습니다. 실행 탭에서 작업 실행 세부 정보를 보려면 완료된 실행(지난 60일) 테이블의 실행 열에서 실행 링크를 클릭합니다. 작업에 대한 실행 탭으로 돌아가려면 작업 ID 값을 클릭합니다.

여러 태스크를 오케스트레이션하는 작업의 경우 태스크를 클릭하여 다음을 비롯한 태스크 실행 세부 정보를 봅니다.

  • 작업을 실행한 클러스터
    • 작업에 대한 Spark UI
    • 태스크에 대한 로그
    • 작업에 대한 메트릭

작업 ID 값을 클릭하여 작업의 실행 탭으로 돌아갑니다. 작업 실행 ID 값을 클릭하여 작업 실행 세부 정보로 돌아갑니다.

작업 실행 결과 내보내기

모든 작업 유형에 대해 Notebook 실행 결과 및 작업 실행 로그를 내보낼 수 있습니다.

Notebook 실행 결과 내보내기

결과를 내보내 작업 실행을 유지할 수 있습니다. Notebook 작업 실행의 경우 나중에 Azure Databricks 작업 영역으로 가져올 수 있는 렌더링된 Notebook을 내보낼 수 있습니다.

단일 태스크가 있는 작업에 대한 Notebook 실행 결과를 내보내려면 다음을 수행합니다.

  1. 작업 세부 정보 페이지에서 완료된 실행(지난 60일) 테이블의 실행 열에서 실행에 대한 세부 정보 보기 링크를 클릭합니다.
  2. HTML로 내보내기를클릭합니다.

여러 태스크가 있는 작업에 대한 Notebook 실행 결과를 내보내려면 다음을 수행합니다.

  1. 작업 세부 정보 페이지에서 완료된 실행(지난 60일) 테이블의 실행 열에서 실행에 대한 세부 정보 보기 링크를 클릭합니다.
  2. 내보낼 Notebook 작업을 클릭합니다.
  3. HTML로 내보내기를클릭합니다.

작업 실행 로그 내보내기

작업 실행에 대한 로그를 내보낼 수도 있습니다. 작업 API를 통해 DBFS에 로그를 자동으로 배달하도록 작업을 설정할 수 있습니다. 작업 new_cluster.cluster_log_conf API에서 new_cluster.cluster_log_conf 작업()에 전달된 요청 본문의 개체를 참조하세요. POST /jobs/create

작업 편집

일부 구성 옵션은 작업에서 사용할 수 있으며 다른 옵션은 개별 태스크에서 사용할 수 있습니다. 예를 들어 최대 동시 실행은 작업에만 설정할 수 있지만 각 태스크에 대해 매개 변수를 정의해야 합니다.

작업에 대한 구성을 변경하려면 다음을 수행합니다.

  1. 사이드바에서 작업 아이콘작업을 클릭합니다.
  2. 이름 열에서 작업 이름을 클릭합니다.

측면 패널에는 작업 세부 정보가 표시됩니다. 일정,클러스터 구성, 경고 및 최대 동시 실행 수를 변경할 수 있습니다. 작업 액세스 제어를 사용하는 경우 작업 권한을 편집할 수도 있습니다.

최대 동시 실행 수

이 작업에 대한 최대 병렬 실행 수입니다. Azure Databricks 새 실행을 시작할 때 작업이 이미 최대 활성 실행 수에 도달한 경우 실행을 건너뜁니다. 동일한 작업의 여러 실행을 동시에 수행하려면 이 값을 기본값인 1보다 높게 설정합니다. 예를 들어 자주 수행되는 일정에 따라 작업을 트리거하고 연속 실행이 서로 겹치도록 하려는 경우 또는 입력 매개 변수에 따라 다른 여러 실행을 트리거하려는 경우에 유용합니다.

경고

작업 실패, 성공 또는 시간 제한 시 전송된 메일 경고입니다. 작업 시작, 작업 성공 및 작업 실패(건너뛴 작업 포함)에 대한 경고를 설정하여 각 경고 유형에 대해 여러 개의 쉼표로 구분된 메일 주소를 제공할 수 있습니다. 건너뛴 작업 실행에 대한 경고를 옵트아웃할 수도 있습니다.

메일 경고 구성

다음을 포함하여 이러한 메일 경고를 즐겨찾는 알림 도구와 통합합니다.

작업에 대한 액세스 제어

작업 액세스 제어를 사용하면 작업 소유자와 관리자가 해당 작업에 대한 세분화된 권한을 부여할 수 있습니다. 작업 소유자는 작업 결과를 볼 수 있는 다른 사용자 또는 그룹을 선택할 수 있습니다. 소유자는 작업 실행을 관리할 수 있는 사람(지금 실행 및 실행 권한 취소)을 선택할 수도 있습니다.

자세한 내용은 작업 액세스 제어를 참조하세요.

작업 편집

작업 구성 옵션을 설정하려면 다음을 수행합니다.

  1. 사이드바에서 작업 아이콘작업을 클릭합니다.
  2. 이름 열에서 작업 이름을 클릭합니다.
  3. 여러 작업의 오케스트레이션을 사용하도록 설정한 경우 작업 탭을 클릭합니다. 작업 오케스트레이션을 사용하도록 설정하지 않은 경우 작업 탭을 클릭합니다.

작업 의존성

여러 태스크의 오케스트레이션을 사용하는 경우 Depends on 드롭다운을 사용하여 작업에서 태스크의 실행 순서를 정의할 수 있습니다. 이 필드를 작업에서 하나 이상의 태스크로 설정할 수 있습니다.

작업 의존성 편집

참고

작업이 단일 태스크로만 구성된 경우에는 depends가 표시되지 않습니다.

태스크 의존성을 구성하면 작업 스케줄러에서 실행 순서를 나타내는 일반적인 방법인 태스크 실행의 DAG(방향성 비순환 Graph)가 만들어집니다. 예를 들어 다음 작업은 4개의 태스크로 구성됩니다.

작업 의존성 예제 다이어그램

  • 작업 1은 루트 작업이며 다른 작업에 의존하지 않습니다.
  • 작업 2 및 작업 3은 먼저 완료하는 작업 1에 따라 달라집니다.
  • 마지막으로 작업 4는 작업 2 및 작업 3이 성공적으로 완료되었는지에 따라 달라집니다.

Azure Databricks 다운스트림 작업을 실행하기 전에 업스트림 작업을 실행하여 가능한 한 많은 작업을 병렬로 실행합니다. 다음 다이어그램에서는 이러한 작업에 대한 처리 순서를 보여 줍니다.

태스크 의존성 예제 흐름

개별 작업 구성 옵션

개별 작업에는 다음과 같은 구성 옵션이 있습니다.

이 섹션에서는 다음 작업을 수행합니다.

클러스터

태스크가 실행되는 클러스터를 구성하려면 클러스터 드롭다운을 클릭합니다. 태스크를 실행하도록 클러스터를 선택하고 구성하는 방법에 대한 자세한 내용은 클러스터 구성 팁 을 참조하세요.

참고

각 태스크는 다목적 클러스터 또는 새 작업 클러스터에서 실행됩니다. 작업에서 두 개 이상의 태스크에 동일한 작업 클러스터를 사용할 수 없습니다.

종속 라이브러리

종속 라이브러리는 태스크가 실행되기 전에 클러스터에 설치됩니다. 모든 작업 의존성을 설정하여 실행이 시작되기 전에 설치되도록 해야 합니다.

종속 라이브러리를 추가하려면 고급 옵션을 클릭하고 종속 라이브러리 추가를 선택하여 종속 라이브러리 추가 선택기를 엽니다. 라이브러리 dependencies의 권장 사항에 따라 dependencies를 지정합니다.

중요

모든 클러스터에 자동으로 설치하도록라이브러리를 구성했거나 라이브러리가 설치된 기존 종료된 클러스터를 선택한 경우 작업 실행은 라이브러리 설치가 완료될 때까지 기다리지 않습니다. 작업에 특정 라이브러리가 필요한 경우 종속 라이브러리 필드의 작업에 라이브러리를 연결해야 합니다.

작업 매개 변수 변수

태스크 매개 변수의 일부로 템플릿 변수를 작업 태스크에 전달할 수 있습니다. 이러한 변수는 작업 태스크가 실행되면 적절한 값으로 대체됩니다. 태스크 매개 변수 값을 사용하여 실행 ID 또는 작업의 시작 시간과 같은 작업 실행에 대한 컨텍스트를 전달할 수 있습니다.

작업이 실행되면 이중 중괄호로 묶인 작업 매개 변수 변수가 대체되고 값의 일부로 포함된 선택적 문자열 값에 추가됩니다. 예를 들어 작업 ID 6 실행 시 값이 인 라는 매개 변수를 전달하려면 MyJobIdmy-job-6 다음 태스크 매개 변수를 추가합니다.

{
  "MyJobID": "my-job-{{job_id}}"
}

이중 중괄호의 내용은 식으로 계산되지 않으므로 이중 중괄호 내에서 작업 또는 함수를 수행할 수 없습니다. 공백은 중괄호 안에서 제거되지 않으므로 {{ job_id }} 평가되지 않습니다.

지원되는 작업 매개 변수 변수는 다음과 같습니다.

변수 설명
{{job_id}} 작업에 할당된 고유 식별자입니다.
{{run_id}} 작업 실행에 할당된 고유 식별자
{{start_date}} 작업 실행이 시작된 날짜입니다. 형식은 UTC 시간대의 yyyy-MM-dd입니다.
{{start_time}} 클러스터를 만들고 준비한 후 실행이 시작된 타임스탬프입니다. 형식은 에서 반환된 UTC 시간대의 epoch를 UNIX 이후 System.currentTimeMillis() 밀리초입니다.
{{task_retry_count}} 첫 번째 시도가 실패할 경우 작업을 실행하려고 시도한 재시도 횟수입니다. 값은 첫 번째 시도에 대해 0이고 다시 시도할 때마다 증가합니다.

여러 태스크의 오케스트레이션을 사용하는 경우 다음 작업 매개 변수 변수 변수가 지원됩니다.

변수 설명 예제 값
{{parent_run_id}} 여러 태스크가 있는 작업의 실행에 할당된 고유 식별자입니다. 3447835
{{task_key}} 여러 태스크가 있는 작업의 일부인 태스크에 할당된 고유 이름입니다. "clean_raw_data"

작업 만들기, 작업편집 또는 다른 매개 변수를사용하여 작업 실행 시 모든 태스크를사용하여 이러한 변수를 설정할 수 있습니다.

제한 시간

작업의 최대 완료 시간입니다. 이 시간에 작업이 완료되지 않으면 Azure Databricks 상태를 "Timed Out"으로 설정합니다.

다시 시도

실패한 실행이 다시 시도되는 시기와 횟수를 결정하는 정책입니다. 태스크에 대한 재시도를 설정하려면 고급 옵션을 클릭하고 재시도 정책 편집을선택합니다.

참고

제한 시간재시도를모두 구성하는 경우 시간 제한은 각 재시도에 적용됩니다.

작업 복제

기존 작업을 복제하여 새 작업을 신속하게 만들 수 있습니다. 작업을 복제하면 작업 ID를 제외하고 작업의 동일한 복사본이 만들어집니다. 작업 페이지의 작업 이름 옆에 있는 자세히 ...를 클릭하고 드롭다운 메뉴에서 복제를 선택합니다.

작업 복제

기존 작업을 복제하여 새 작업을 신속하게 만들 수 있습니다.

  1. 작업 페이지에서 태스크 탭을 클릭합니다.
  2. 복제할 작업을 선택합니다.
  3. 작업 세로 말줄임표를 클릭하고 작업 복제를선택합니다.

작업 삭제

작업을 삭제하려면 작업 페이지에서 작업 이름 옆에 있는 자세히 ...를 클릭하고 드롭다운 메뉴에서 삭제를 선택합니다.

작업 삭제

여러 작업의 오케스트레이션을 사용하도록 설정된 경우 작업을 삭제하려면 다음을 수행합니다.

  1. 작업 탭을 클릭합니다.
  2. 삭제할 작업을 선택합니다.
  3. 작업 세로 말줄임표를 클릭하고 태스크 제거를선택합니다.

작업 경로 복사

작업 경로 (예: 전자 필기장 경로)를 복사 하려면 다음을 수행 합니다.

  1. 작업 탭을 클릭합니다.
  2. 복사할 경로가 포함 된 작업을 선택 합니다.
  3. 작업 경로 옆의 작업 복사 아이콘 을 클릭 하 여 경로를 클립보드로 복사 합니다.

모범 사례

이 섹션에서는 다음 작업을 수행합니다.

클러스터 구성 팁

클러스터 구성은 작업을 운영 하는 경우에 중요 합니다. 다음은 작업 클러스터를 선택 하 고 구성 하는 일반적인 지침과 특정 작업 유형에 대 한 권장 사항을 제공 합니다.

작업에 적합 한 클러스터 유형 선택

  • 새 작업 클러스터 는 태스크를 실행 하 고 작업이 완료 된 직후에 종료 되는 전용 클러스터입니다. 프로덕션 환경에서 Databricks는 각 작업이 완전히 격리 된 환경에서 실행 되도록 새 클러스터를 사용 하는 것을 권장 합니다.
  • 새 클러스터에서 작업을 실행 하는 경우 작업은 작업 (task) 작업 (task) 작업 부하 가격에 따라 작업으로 처리 됩니다. 기존 모든 용도의 클러스터에서 작업을 실행 하는 경우 작업은 모든 용도의 작업 가격 책정에 따라 데이터 분석 (모두 용도) 작업으로 처리 됩니다.
  • 종료 된 기존 클러스터를 선택 하 고 작업 소유자가 다시 시작할 수있는권한을가진 경우 작업이 실행 되도록 예약 된 경우 Azure Databricks에서 클러스터를 시작 합니다.
  • 기존의 모든 용도의 클러스터는 일정 한 간격으로 대시보드 업데이트와 같은 작업에 가장 적합 합니다.

풀을 사용 하 여 클러스터 시작 시간 줄이기

새 작업 클러스터 시작 시간을 줄이려면 을 만들고 풀을 사용 하도록 작업의 클러스터를 구성 합니다.

노트북 작업 팁

전체 노트북 셀 출력 (모든 노트북 셀의 결합 된 출력)은 20MB 크기 제한이 적용 됩니다. 또한 개별 셀 출력에는 8MB 크기 제한이 적용 됩니다. 총 셀 출력이 20MB을 초과 하거나 개별 셀의 출력이 8MB 보다 큰 경우 실행이 취소 되 고 failed로 표시 됩니다.

한도를 초과 하는 셀을 찾는 데 도움이 필요 하면 모든 용도의 클러스터에 대해 노트북을 실행 하 고이 노트북 자동 저장 기술을사용 합니다.

스트리밍 작업

Spark 스트리밍 작업은 최대 동시 실행 수를 1 보다 크게 설정할 수 없습니다. 또한 스트리밍 작업은 cron 일정 "* * * * * *" (매 초) 또는 분 마다 실행 되도록 설정 해야 합니다. 또한 스트리밍 작업에 대해 다시 시도를 사용 하도록 설정 하면 안 됩니다.

스트리밍 작업은 계속 실행 되므로 작업에서 항상 최종 작업 이어야 합니다.

JAR 작업

JAR 작업을 실행할 때 다음 사항에 유의 하세요.

출력 크기 제한

참고

Databricks Runtime 6.3 이상에서 사용할 수 있습니다.

Stdout으로 내보내는 로그 출력과 같은 작업 출력에는 20MB 크기 제한이 적용 됩니다. 전체 출력의 크기가 더 큰 경우 실행이 취소 되 고 실패로 표시 됩니다.

이러한 제한이 발생 하지 않도록 하려면 Spark 구성을로 설정 하 여 stdout이 드라이버에서 Azure Databricks로 반환 되는 것을 방지할 수 있습니다 spark.databricks.driver.disableScalaOutputtrue . 기본적으로 플래그 값은 false 입니다. 플래그는 Scala JAR 작업 및 Scala 노트북에 대 한 셀 출력을 제어 합니다. 플래그를 사용 하는 경우 Spark는 작업 실행 결과를 클라이언트에 반환 하지 않습니다. 플래그는 클러스터의 로그 파일에 기록 되는 데이터에 영향을 주지 않습니다. 이 플래그를 설정 하는 것은 노트북 결과를 사용 하지 않도록 설정 하므로 JAR 작업의 작업 클러스터에만 권장 됩니다.

공유 사용 SparkContext

Azure Databricks는 관리 되는 서비스 이기 때문에 Apache Spark 작업이 올바르게 실행 되도록 하기 위해 일부 코드를 변경 해야 할 수 있습니다. JAR 작업 프로그램은 공유 API를 사용 하 여를 SparkContext 가져와야 합니다 SparkContext . Azure Databricks를 초기화 하기 때문에를 SparkContext 호출 하는 프로그램 new SparkContext() 은 실패 합니다. 을 가져오려면 SparkContext Azure Databricks에서 만든 공유만 사용 합니다 SparkContext .

val goodSparkContext = SparkContext.getOrCreate()
val goodSparkSession = SparkSession.builder().getOrCreate()

공유를 사용 하는 경우 몇 가지 방법으로 피해 야 할 수도 있습니다 SparkContext .

  • SparkContext.stop()를 호출하지 마세요.
  • System.exit(0)프로그램의 끝에서 또는를 호출 하지 마세요 sc.stop()Main . 이로 인해 정의 되지 않은 동작이 발생할 수 있습니다.

try-finally작업 정리에 대 한 블록 사용

두 부분으로 구성 된 JAR을 고려 합니다.

  • jobBody() 작업의 주요 부분이 포함 된입니다.
  • jobCleanup()jobBody() 함수는 해당 함수가 성공 했는지 또는 예외를 반환 하 고 나면 실행 해야 합니다.

예를 들어는 jobBody() 테이블을 만들 수 있으며를 사용 jobCleanup() 하 여 이러한 테이블을 삭제할 수 있습니다.

정리 메서드가 호출 되도록 하는 안전한 방법은 코드에 블록을 배치 하는 것입니다 try-finally .

try {
  jobBody()
} finally {
  jobCleanup()
}

또는 다음 코드를 사용 하 여 정리 해서는 안 됩니다 .

val cleanupThread = new Thread { override def run = jobCleanup() }
Runtime.getRuntime.addShutdownHook(cleanupThread)

Azure Databricks에서 Spark 컨테이너의 수명을 관리 하는 방식 때문에 종료 후크가 안정적으로 실행 되지 않습니다.

JAR 작업 매개 변수 구성

JSON 문자열 배열을 사용 하 여 JAR 작업에 매개 변수를 전달 합니다. spark_jar_task작업 API에서 spark_jar_task 작업 ()에 전달 된 요청 본문의 개체를 확인 POST /jobs/create 합니다. 이러한 매개 변수에 액세스 하려면 String 함수로 전달 된 배열을 검사 main 합니다.

라이브러리 종속성

Spark 드라이버에는 재정의할 수 없는 특정 라이브러리 종속성이 있습니다. 이러한 라이브러리는 충돌 하는 라이브러리 보다 우선 순위가 높습니다.

드라이버 라이브러리 종속성의 전체 목록을 가져오려면 동일한 Spark 버전의 클러스터에 연결 된 노트북 내에서 다음 명령을 실행 하거나 검사 하려는 드라이버가 포함 된 클러스터를 실행 합니다.

%sh
ls /databricks/jars

라이브러리 종속성 관리

작업에 대 한 Jar를 만드는 동안 라이브러리 종속성을 처리할 때의 적절 한 규칙은 Spark와 Hadoop을 종속성으로 나열 하는 것입니다 provided . Maven에서 다음 예제와 같이 제공 된 종속성으로 Spark 및 Hadoop을 추가 합니다.

<dependency>
  <groupId>org.apache.spark</groupId>
  <artifactId>spark-core_2.11</artifactId>
  <version>2.3.0</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>org.apache.hadoop</groupId>
  <artifactId>hadoop-core</artifactId>
  <version>1.2.1</version>
  <scope>provided</scope>
</dependency>

에서 sbt 다음 예제와 같이 제공 된 종속성으로 Spark 및 Hadoop을 추가 합니다.

libraryDependencies += "org.apache.spark" %% "spark-core" % "2.3.0" % "provided"
libraryDependencies += "org.apache.hadoop" %% "hadoop-core" % "1.2.1" % "provided"

실행 중인 버전에 따라 종속성의 올바른 Scala 버전을 지정 합니다.