2016-09-13 2 views
2

우리는 Spark Standalone에서 실행되는 매우 복잡한 응용 프로그램을 사용하고 있습니다. 경우에 따라 작업자 중 하나의 작업이 RUNNING 상태에서 무한한 시간 동안 무작위로 차단됩니다.독립 실행 형 클러스터에서 작업을 무작위로 차단합니다.

Blocked tasks

는 추가 정보를

:

  • 디버그에서 로거 실행하고 나는 모든 관련 메시지를보고하지 않은 로그에 오류가 (난 때 작업을 볼 수있다이 시작하지만 그 다음에 활동이 없음)
  • 작업자가 단 한 명이라면 작업이 정상적으로 작동합니다.
  • 동일한 작업이 두 번째로 적절한 시간 내에 문제가 발생했습니다.
  • 일부 작업에 지연이 발생할 수있는 큰 파티션이 없습니다.
  • (스파크 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

+0

1) 실제로 차단하는 코드를 추출 할 수 있습니까? 2) GC 로그를 확인 했습니까? 3) 스레드 잠금/내부 멀티 스레딩의 일부 형식을 사용하고 있습니까? –

+0

1) 응용 프로그램이 상당히 복잡해서 블록을 일으키는 실제 부품을 찾을 수 없습니다. 2) 로그에 문제가 없습니다. gc/memory 문제 일지라도 동일한 작업에 대해 비슷한 동작을 보입니다. 이제 동일한 작업이 거의 모든 시간을 몇 초 만에 완료하지만 무작위로 차단됩니다. 3) 다중 스레딩/잠금 메커니즘의 다른 형태는 사용되지 않습니다. – BBogdan

답변

0

문제 집행자 한 명당 하나의 코어를 할당함으로써 저를 위해 고쳐졌습니다. 유언 집행 인이 1 코어 이상인 경우 문제가 다시 나타납니다. 나는 아직도 이런 일이 왜 일어나는 지 이해하지 못했지만 비슷한 문제가있는 사람들은 이것을 시도 할 수있다.