우리는 Spark Standalone에서 실행되는 매우 복잡한 응용 프로그램을 사용하고 있습니다. 경우에 따라 작업자 중 하나의 작업이 RUNNING 상태에서 무한한 시간 동안 무작위로 차단됩니다.독립 실행 형 클러스터에서 작업을 무작위로 차단합니다.
는 추가 정보를:
는- 는
- 디버그에서 로거 실행하고 나는 모든 관련 메시지를보고하지 않은 로그에 오류가 (난 때 작업을 볼 수있다이 시작하지만 그 다음에 활동이 없음)
- 작업자가 단 한 명이라면 작업이 정상적으로 작동합니다.
- 동일한 작업이 두 번째로 적절한 시간 내에 문제가 발생했습니다.
- 일부 작업에 지연이 발생할 수있는 큰 파티션이 없습니다.
- (스파크 2.0) RDD에서 Datasets로 옮겼습니다. 동일한 문제가 있습니다.
- spark 1.4에서 문제가 해결되어 문제를 해결할 수 있었지만 스파크 2.0에서는 차단 작업이 다른 작업자로부터있었습니다 1.4에서는 1 명의 작업자 만 차단하는 작업을 수행하므로 추측이 내 문제를 해결하지 못합니다.
- 더 많은 환경에서 문제가 발생하므로 하드웨어와 관련이 없다고 생각합니다.
비슷한 경험이 있습니까? 문제를 어떻게 확인할 수 있습니까?
고맙습니다.
나중에 편집 : Spark Indefinite Waiting with "Asked to send map output locations for shuffle" 여기 : 난 내가 같은 문제가 여기에 설명 직면하고 있다고 생각 http://apache-spark-user-list.1001560.n3.nabble.com/Spark-stalling-during-shuffle-maybe-a-memory-issue-td6067.html을하지만 모두 작업 솔루션 않고 있습니다. 로그의 마지막 무한히 반복
이다 : 운영자 이벤트 루프-18] DEBUG org.apache.spark.scheduler.TaskSchedulerImpl - 상위 요소 : 상품명 : TaskSet_2, runningTasks 6
1) 실제로 차단하는 코드를 추출 할 수 있습니까? 2) GC 로그를 확인 했습니까? 3) 스레드 잠금/내부 멀티 스레딩의 일부 형식을 사용하고 있습니까? –
1) 응용 프로그램이 상당히 복잡해서 블록을 일으키는 실제 부품을 찾을 수 없습니다. 2) 로그에 문제가 없습니다. gc/memory 문제 일지라도 동일한 작업에 대해 비슷한 동작을 보입니다. 이제 동일한 작업이 거의 모든 시간을 몇 초 만에 완료하지만 무작위로 차단됩니다. 3) 다중 스레딩/잠금 메커니즘의 다른 형태는 사용되지 않습니다. – BBogdan