확장된 Apache Spark 기록 서버를 사용하여 Apache Spark 애플리케이션 디버그 및 진단
이 문서에서는 확장된 Apache Spark 기록 서버를 사용하여 완료되거나 실행 중인 Apache Spark 애플리케이션을 디버그 및 진단하는 방법에 대한 지침을 제공합니다.
Apache Spark 기록 서버 액세스
Apache Spark 기록 서버는 완료되거나 실행 중인 Spark 애플리케이션의 웹 사용자 인터페이스입니다. 진행률 표시기 Notebook 또는 Apache Spark 애플리케이션 세부 정보 페이지에서 Apache Spark UI(웹 사용자 인터페이스)를 열 수 있습니다.
진행률 표시기 Notebook에서 Spark 웹 UI 열기
Apache Spark 작업이 트리거되면 Spark 웹 UI 열기 버튼이 진행률 표시기에서 추가 작업 옵션 내에 있습니다. Spark 웹 UI를 선택하고 몇 초 동안 기다린 다음 Spark UI 페이지가 나타납니다.
Apache Spark 애플리케이션 세부 정보 페이지에서 Spark 기록 서버 웹 UI 열기
Apache Spark 애플리케이션 세부 정보 페이지를 통해 Spark 웹 UI를 열 수도 있습니다. 페이지 왼쪽에서 모니터링 허브를 선택한 다음 Apache Spark 애플리케이션을 선택합니다. 애플리케이션의 세부 정보 페이지가 나타납니다.
상태가 실행 중인 Apache Spark 애플리케이션의 경우 버튼에 Spark UI가 표시됩니다. Spark UI를 선택하면 Spark UI 페이지가 나타납니다.
상태가 종료됨인 Apache Spark 애플리케이션의 경우 종료됨 상태는 중지됨, 실패, 취소됨 또는 완료됨이 될 수 있습니다. 버튼에 Spark 기록 서버가 표시됩니다. Spark 기록 서버를 선택하면 Spark UI 페이지가 나타납니다.
Apache Spark 기록 서버의 그래프 탭
보려는 작업의 작업 ID를 선택합니다. 그런 다음, 도구 메뉴에서 그래프를 선택하여 작업 그래프 뷰를 가져옵니다.
개요
생성된 작업 그래프에서 작업에 대한 개요를 볼 수 있습니다. 기본적으로 이 그래프는 모든 작업을 표시합니다. 작업 ID를 기준으로 이 뷰를 필터링할 수 있습니다.
표시
기본적으로 진행률 표시가 선택되어 있습니다. 표시 드롭다운 목록에서 읽음 또는 기록됨을 선택하여 데이터 흐름을 확인할 수 있습니다.
그래프 노드는 열 지도 범례에 표시된 색상을 표시합니다.
재생
작업을 재생하려면 재생을 선택합니다. 언제든지 중지를 선택하여 중지할 수 있습니다. 태스크 색상은 재생 시 여러 상태를 표시합니다.
Color | 의미 |
---|---|
녹색 | 성공: 작업이 성공적으로 완료되었습니다. |
Orange | 다시 시도: 실패했지만 작업의 최종 결과에 영향을 주지 않는 태스크 인스턴스입니다. 해당 작업에는 중복 또는 다시 시도 인스턴스가 있었으며, 나중에 성공할 수 있습니다. |
파랑 | 실행 중: 태스크가 실행 중입니다. |
흰색 | 대기 중이거나 건너뜀: 태스크가 실행을 위해 대기 중이거나 단계를 건너뛰었습니다. |
빨간색 | 실패: 태스크가 실패했습니다. |
다음 이미지는 녹색, 주황색 및 파란색 상태 색상을 보여 줍니다.
다음 이미지는 녹색 및 흰색 상태 색상을 보여 줍니다.
다음 이미지는 빨간색 및 녹색 상태 색상을 보여 줍니다.
참고 항목
Apache Spark 기록 서버는 완료된 각 작업에 대한 재생을 허용하지만 불완전한 작업에 대한 재생은 허용하지 않습니다.
확대/축소
마우스 스크롤을 사용하여 작업 그래프를 확대 및 축소하거나 크기에 맞게를 선택하여 화면에 맞게 조정합니다.
도구 설명
실패한 태스크가 있을 경우 그래프 노드를 마우스로 가리켜 도구 설명을 확인하고, 단계를 클릭하여 단계 페이지를 엽니다.
작업 그래프 탭의 단계에 다음 조건을 충족하는 태스크가 있는 경우 도구 설명 및 작은 아이콘이 표시됩니다.
조건 | 설명 |
---|---|
데이터 기울이기 | 데이터 읽기 크기 > 이 단계에 속한 모든 작업의 평균 데이터 읽기 크기 * 2 및 데이터 읽기 크기 > 10MB |
시간 기울이기 | 실행 시간 > 이 단계에 속한 모든 작업의 평균 실행 시간 * 2 및 실행 시간 > 2분 |
그래프 노드 설명
작업 그래프 노드에는 각 스테이지에 대한 다음 정보가 표시됩니다.
- ID
- 이름 또는 설명
- 총 작업 수
- 읽은 데이터: 입력 크기 및 무작위 읽기 크기의 합
- 데이터 쓰기: 출력 크기 및 순서 섞기 쓰기 크기의 합계입니다.
- 실행 시간: 첫 시도의 시작 시간과 마지막 시도의 완료 시간 사이의 시간
- 행 개수: 입력 레코드, 출력 레코드, 무작위 읽기 레코드 및 무작위 쓰기 레코드의 합계
- 진행률
참고 항목
기본적으로 작업 그래프 노드에는 단계 실행 시간을 제외하고 각 단계의 마지막 시도 정보가 표시됩니다. 그러나 재생하는 동안 그래프 노드에는 각 시도에 대한 정보가 표시됩니다.
읽기 및 쓰기의 데이터 크기는 1MB = 1,000KB = 1,000 * 1,000바이트입니다.
피드백 제공
피드백 보내기를 선택하여 문제에 관한 피드백을 보냅니다.
스테이지 수 제한
성능을 고려하여 기본적으로 Spark 애플리케이션의 단계가 500개 미만인 경우에만 그래프를 사용할 수 있습니다. 단계가 너무 많으면 다음과 같은 오류와 함께 실패합니다.
The number of stages in this application exceeds limit (500), graph page is disabled in this case.
해결 방법으로 Spark 애플리케이션을 시작하기 전에 다음 Spark 구성을 적용하여 제한을 늘립니다.
spark.ui.enhancement.maxGraphStages 1000
그러나 브라우저가 가져오고 렌더링하기에는 콘텐츠가 너무 클 수 있으므로 이로 인해 페이지와 API의 성능이 저하될 수 있습니다.
Apache Spark 기록 서버의 진단 탭 살펴보기
진단 탭에 액세스하려면 작업 ID를 선택합니다. 그런 다음, 도구 메뉴에서 진단을 선택하여 작업 진단 뷰를 표시합니다. 진단 탭에는 데이터 기울이기, 시간 기울이기 및 실행기 사용량 분석이 포함되어 있습니다.
각 탭을 선택하여 데이터 기울이기, 시간 기울이기 및 실행기 사용량 분석을 확인합니다.
데이터 기울이기
데이터 기울이기 탭을 선택하면 지정한 매개 변수에 따라 해당 기울이기 작업이 표시됩니다.
매개 변수 지정 - 첫 번째 섹션에는 데이터 기울이기를 검색하는 데 사용되는 매개 변수가 표시됩니다. 기본 규칙은 읽은 태스크 데이터가 평균 읽은 작업 데이터의 3배보다 크고, 10MB를 초과하는 것입니다. 기울어진 작업에 대한 고유 규칙을 정의하려는 경우 매개 변수를 선택할 수 있습니다. 기울어진 단계 및 기울어진 문자 섹션이 그에 따라 새로 고침됩니다.
기울어진 단계 - 두 번째 섹션에는 이전에 지정된 조건을 충족하는 기울어진 작업이 있는 단계가 표시됩니다. 단계에 기울어진 작업이 두 개 이상 있는 경우 기울어진 단계 테이블에는 가장 많이 기울어진 작업(예: 데이터 기울이기 데이터가 가장 큰 작업)만 표시됩니다.
기울이기 차트 - 기울이기 단계 테이블에서 행을 선택하면 기울이기 차트에 데이터 읽기 및 실행 시간을 기준으로 더 많은 작업 분포 정보가 표시됩니다. 기울어진 작업은 빨간색으로 표시되고 일반 작업은 파란색으로 표시됩니다. 차트에는 최대 100개의 샘플 태스크가 표시되고 태스크 세부 정보가 오른쪽 아래 패널에 표시됩니다.
시간 기울이기
시간 기울이기 탭에는 작업 실행 시간을 기준으로 기울어진 작업이 표시됩니다.
매개 변수 지정 - 첫 번째 섹션에는 시간 기울이기를 검색하는 데 사용되는 매개 변수가 표시됩니다. 시간 기울이기를 검색하는 기본 기준은 작업 실행 시간이 평균 실행 시간의 3배보다 크고 작업 실행 시간이 30초를 초과하는 것입니다. 필요에 따라 매개 변수를 변경할 수 있습니다. 기울어진 작업 및 기울이기 차트에는 이전에 설명한 데이터 기울이기 탭과 마찬가지로 해당 단계 및 작업 정보가 표시됩니다.
시간 기울이기를 선택하면 매개 변수 지정 섹션에 설정된 매개 변수에 따라 필터링된 결과가 기울어진 단계 섹션에 표시됩니다. 기울어진 단계 섹션에서 한 항목을 선택하면 해당 차트가 구역 3에 초안으로 작성되고 태스크 세부 정보가 오른쪽 아래 패널에 표시됩니다.
실행기 사용량 분석
이 기능은 Fabric에서 더 이상 사용되지 않습니다. 이 방법을 해결 방법으로 계속 사용하려는 경우 다음과 같이 URL에서 경로 "/diagnostic" 뒤에 "/executorusage"를 명시적으로 추가하여 페이지에 액세스하세요.