낙오 항목은 작업이 동시에 완료되지 않도록 하여 Dataflow 작업 속도를 저하시키는 작업 항목입니다.
낙오 항목은 다음 특성을 가진 작업 항목입니다.
- 같은 단계에 있는 다른 작업 항목보다 완료하는 데 훨씬 오래 걸립니다.
- 스테이지 내에서 동시 로드를 줄입니다.
- 새 작업이 시작되지 않도록 차단합니다.
최악의 경우에는 낙오 항목으로 인해 작업의 적은 비율이 진행되어 작업의 전체 지연을 초래하므로 단계가 완료되지 않을 수 있습니다.
Dataflow는 일괄 작업 중에 발생하는 낙오 항목을 감지합니다. Dataflow가 낙오 항목을 감지하면 낙오 항목의 원인도 확인합니다.
Dataflow 모니터링 인터페이스에서 낙오 항목 보기
Dataflow 작업을 시작한 후 Google Cloud 콘솔을 사용하여 감지된 낙오 항목을 볼 수 있습니다.
낙오 항목은 스테이지 또는 작업자별로 볼 수 있습니다. 이러한 뷰를 사용하여 낙오 항목이 있는 스테이지를 찾은 다음 각 단계 내에서 낙오 항목이 발생한 작업자를 찾습니다.
단계별 낙오 항목 보기
단계별로 낙오 항목을 보려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 Dataflow 작업 페이지로 이동합니다.
작업으로 이동
작업 이름을 클릭합니다.
작업 세부정보 페이지에서 실행 세부정보 탭을 클릭합니다.
그래프 뷰 목록에서 스테이지 진행 상태를 선택합니다. 진행률 그래프에는 각 단계 내에서 감지된 모든 낙오 항목의 집계 수가 표시됩니다.
스테이지의 세부정보를 보려면 스테이지 막대 위로 마우스를 가져갑니다. 스테이지의 작업자를 보려면 세부정보 패널에서 작업자 보기를 클릭합니다.
작업자별 낙오 항목 보기
작업자별로 straggler를 보려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 Dataflow 작업 페이지로 이동합니다.
작업으로 이동
작업 이름을 클릭합니다.
작업 세부정보 페이지에서 실행 세부정보 탭을 클릭합니다.
그래프 뷰 목록에서 작업자 진행 상황을 선택합니다.
단계별 작업자 필터링 목록에서 단계를 선택합니다. 진행률 그래프에는 해당 단계에서 감지된 낙오 항목이 표시됩니다. 낙오 항목이 처음 감지된 지점은 막대에서 음영이 어둡습니다.
작업자의 세부정보를 보려면 해당 작업자의 막대 위로 마우스를 가져갑니다.
단계 정보 패널의 낙오 항목 세부정보 섹션에는 페이지에 표시된 모든 작업자의 낙오 항목이 다음 정보와 함께 나열됩니다.
- 낙오 항목이 감지된 시작 시간
- 낙오 항목을 경험한 작업자
- 원인(알려진 경우)
낙오 항목 문제 해결
Dataflow는 다음과 같은 낙오 항목의 원인을 감지합니다.
핫키. 핫키는 동일한
PCollection
의 다른 키보다 훨씬 더 많은 요소를 나타내는 키입니다. 자세한 내용은 이 문서의 핫키로 인한 낙오 항목 문제 해결을 참조하세요.확인할 수 없는 원인. 확인할 수 없는 원인이 있는 낙오 항목에 대해서는 파이프라인 문제 해결 및 디버깅 문서의 느린 일괄 작업에 대한 일반적인 문제 해결 단계를 참조하세요.
핫키로 인한 낙오 항목 문제 해결
다양한 요인으로 인해 낙오 항목이 발생할 수 있지만 일반적인 원인 중 하나는 핫키의 존재입니다. 핫키는 동일한 PCollection
에 있는 다른 키보다 훨씬 더 많은 요소를 나타내는 키입니다. 핫키는 Dataflow가 요소를 병렬로 처리하는 기능을 제한하므로 낙오 항목을 만들 수 있습니다.
Dataflow가 핫키로 인해 낙오 항목을 감지하면 낙오 항목 세부정보 패널에 Hot Key
가 원인으로 표시됩니다.
기본적으로 Dataflow는 핫키의 키 값을 표시하지 않습니다. 키 값을 표시하려면 작업을 실행할 때 hotKeyLoggingEnabled
파이프라인 옵션을 true
로 설정합니다.
이 문제를 해결하려면 데이터가 균등하게 분산되었는지 확인합니다. 키의 값이 불균형하다면 다음 조치 실행을 고려해 보세요.
- 데이터를 다시 입력하세요.
ParDo
변환을 적용하여 새로운 키-값 쌍을 출력합니다. - 자바 작업의 경우
Combine.PerKey.withHotKeyFanout
변환을 사용합니다. - Python 작업의 경우
CombinePerKey.with_hot_key_fanout
변환을 사용합니다. - Dataflow Shuffle 사용 설정
다음 단계
- Dataflow 모니터링 인터페이스 사용 방법 알아보기
- 모니터링 인터페이스의 실행 세부정보 탭 이해하기