재시도없이 Apache Spark 작업이 즉시 실패하고 maxFailures 설정이 작동하지 않음

Tribbloid

컴퓨터에서 로컬로 Apache Spark의 웹 크롤링 / 스크래핑 프로그램을 테스트하고있었습니다.

프로그램은 산발적으로 실패하는 휘발성 함수를 취하는 몇 가지 RDD 변환을 사용합니다. (이 함수의 목적은 URL 링크를 웹 페이지로 변환하는 것입니다. 가끔은 헤드리스 브라우저가 일시적으로 중단되거나 오버로드되었습니다. 피할 수는 없습니다)

Apache Spark에는 강력한 장애 조치 및 재시도 기능이 있으며, 실패한 변환 또는 손실 된 데이터는 찾을 수있는 리소스 (마법처럼 들리나요?)에서 처음부터 다시 계산할 수 있으므로 장애 조치 나 try-catch를 넣지 않았습니다. 암호.

이것은 내 스파크 구성입니다.

val conf = new SparkConf().setAppName("MoreLinkedIn")
conf.setMaster("local[*]")
conf.setSparkHome(System.getenv("SPARK_HOME"))
conf.setJars(SparkContext.jarOfClass(this.getClass).toList)
conf.set("spark.task.maxFailures","40") //definitely enough

불행히도 대부분의 단계와 개별 작업이 성공한 후에 작업이 실패했습니다. 최신 로그인 콘솔에 다음이 표시됩니다.

Exception in thread "main" org.apache.spark.SparkException: Job aborted due to stage failure: Task 1.0:7 failed 1 times, most recent failure: Exception failure in TID 23 on host localhost: org.openqa.selenium.TimeoutException: Timed out after 50 seconds waiting for...

Spark는 한 번 실패한 후 비겁하게 포기한 것 같습니다. 좀 더 끈기있게 구성하려면 어떻게해야합니까?

(내 프로그램은 https://github.com/tribbloid/spookystuff 에서 다운로드 할 수 있습니다 . 희소하고 체계화되지 않은 코드 / 문서에 대해 죄송합니다. 며칠 동안 시작합니다.)

추가 : 직접 시도하려면 다음 코드가이 문제를 보여줄 수 있습니다.

def main(args: Array[String]) {
val conf = new SparkConf().setAppName("Spark Pi")
conf.setMaster("local[*]")
conf.setSparkHome(System.getenv("SPARK_HOME"))
conf.setJars(SparkContext.jarOfClass(this.getClass).toList)
conf.set("spark.task.maxFailures","400000")
val sc = new SparkContext(conf)
val slices = if (args.length > 0) args(0).toInt else 8
val n = 100000 * slices
val count = sc.parallelize(1 to n, slices).map { i =>
  val x = java.lang.Math.random()
  if (x > 0.9) throw new IllegalStateException("the map has a chance of 10% to fail")
  x
}.reduce(_ + _)
sc.stop()
println("finished")
}

이 게시물에서 동일한 IllegalStateException이 32 번 재 시도되었습니다. Apache Spark Throws java.lang.IllegalStateException : unread block data

Tribbloid

가장 권위있는 답변을 전달하겠습니다.

이것이 로컬 모드에 유용한 기능이라면 JIRA를 열어 설정을 문서화하거나 개선해야합니다 (특수 URL 형식 대신 spark.local.retries 속성을 추가하고 싶습니다). 우리는 초기에 유닛 테스트를 제외한 모든 것에 대해 비활성화했습니다. 로컬 모드의 예외는 애플리케이션에 문제가 있음을 의미하기 때문에 90 %의 시간 동안 사용자가 작업을 여러 번 재 시도하고 걱정하는 것보다 즉시 디버그하도록 놔 두었습니다. 왜 그렇게 많은 오류가 발생하는지.

매튜

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Spark 1.4.0 EC2 시작이 작동하지 않음

분류에서Dev

Apache Spark가 실패한 작업을 다시 제출하지 않는 이유는 무엇입니까?

분류에서Dev

iOS 8 : MapKit의 rotateEnabled 토글이 즉시 작동하지 않음

분류에서Dev

npm 시작 후 Github 작업이 작동하지 않음

분류에서Dev

Apache 2.4 ThreadsPerChild 지시문이 작업자 수를 업데이트하지 않음

분류에서Dev

spark.task.maxFailures가 예상대로 작동하지 않습니다.

분류에서Dev

Apache 규칙이 작동하지 않음

분류에서Dev

Windows 10 작업 표시 줄이 작동하지 않음

분류에서Dev

Android 작업 표시 줄 검색이 작동하지 않음

분류에서Dev

그런트 감시 작업이 작동하지 않음

분류에서Dev

분할 작업 표시 줄이 작동하지 않음

분류에서Dev

crontab 작업이 작동하지 않음

분류에서Dev

CentOS 8의 프록시 설정이 작동하지 않음

분류에서Dev

Windows 10 작업 표시 줄 / 시작 메뉴 / 알림이 작동하지 않음

분류에서Dev

Apache URL 재 작성이 올바르게 작동하지 않음

분류에서Dev

Apache 재 작성 규칙이 작동하지 않음

분류에서Dev

URL 재 작성이 작동하지 않음-Apache, 로컬 서버

분류에서Dev

Leaflet 팝업에 이미지 표시가 작동하지 않음

분류에서Dev

알람 취소 및 재시작이 의도 한대로 작동하지 않음

분류에서Dev

El Capitan (10.11.1)으로 업데이트 한 후 시스템 프록시 설정이 작동하지 않음

분류에서Dev

MarkerWithLabel이 다시 작동하지 않음

분류에서Dev

Ubuntu Newrelic 패키지 시작 명령이 작동하지 않음

분류에서Dev

호스트 이름이있는 SSL Apache 프록시가 작동하지 않음

분류에서Dev

Jekyll-시계를 사용해도 자동 재생이 작동하지 않음

분류에서Dev

시스템 업그레이드 후 Apache2에서 PHP가 작동하지 않음

분류에서Dev

Apache Spark 독립 실행 형 클러스터 초기 작업이 리소스를 수락하지 않음

분류에서Dev

실이있는 emr에서 Spark SASL이 작동하지 않음

분류에서Dev

Ubuntu 14.04에서 Apache2가 작동하지 않음 : 다시 시작되지 않음, 알 수없는 작업

분류에서Dev

Autohotkey if 문이 작동하지 않음, 오류 메시지 없음

Related 관련 기사

  1. 1

    Spark 1.4.0 EC2 시작이 작동하지 않음

  2. 2

    Apache Spark가 실패한 작업을 다시 제출하지 않는 이유는 무엇입니까?

  3. 3

    iOS 8 : MapKit의 rotateEnabled 토글이 즉시 작동하지 않음

  4. 4

    npm 시작 후 Github 작업이 작동하지 않음

  5. 5

    Apache 2.4 ThreadsPerChild 지시문이 작업자 수를 업데이트하지 않음

  6. 6

    spark.task.maxFailures가 예상대로 작동하지 않습니다.

  7. 7

    Apache 규칙이 작동하지 않음

  8. 8

    Windows 10 작업 표시 줄이 작동하지 않음

  9. 9

    Android 작업 표시 줄 검색이 작동하지 않음

  10. 10

    그런트 감시 작업이 작동하지 않음

  11. 11

    분할 작업 표시 줄이 작동하지 않음

  12. 12

    crontab 작업이 작동하지 않음

  13. 13

    CentOS 8의 프록시 설정이 작동하지 않음

  14. 14

    Windows 10 작업 표시 줄 / 시작 메뉴 / 알림이 작동하지 않음

  15. 15

    Apache URL 재 작성이 올바르게 작동하지 않음

  16. 16

    Apache 재 작성 규칙이 작동하지 않음

  17. 17

    URL 재 작성이 작동하지 않음-Apache, 로컬 서버

  18. 18

    Leaflet 팝업에 이미지 표시가 작동하지 않음

  19. 19

    알람 취소 및 재시작이 의도 한대로 작동하지 않음

  20. 20

    El Capitan (10.11.1)으로 업데이트 한 후 시스템 프록시 설정이 작동하지 않음

  21. 21

    MarkerWithLabel이 다시 작동하지 않음

  22. 22

    Ubuntu Newrelic 패키지 시작 명령이 작동하지 않음

  23. 23

    호스트 이름이있는 SSL Apache 프록시가 작동하지 않음

  24. 24

    Jekyll-시계를 사용해도 자동 재생이 작동하지 않음

  25. 25

    시스템 업그레이드 후 Apache2에서 PHP가 작동하지 않음

  26. 26

    Apache Spark 독립 실행 형 클러스터 초기 작업이 리소스를 수락하지 않음

  27. 27

    실이있는 emr에서 Spark SASL이 작동하지 않음

  28. 28

    Ubuntu 14.04에서 Apache2가 작동하지 않음 : 다시 시작되지 않음, 알 수없는 작업

  29. 29

    Autohotkey if 문이 작동하지 않음, 오류 메시지 없음

뜨겁다태그

보관