Spark 2.0을 사용하고 있으며 입력 문제로 인해 작업이 실패하는 경우가 있습니다. 예를 들어, 날짜를 기준으로 S3 폴더에서 CSV 파일을 읽는 중입니다. 현재 날짜에 대한 데이터가없는 경우 내 작업에 아무 것도 처리되지 않으므로 다음과 같이 예외가 throw됩니다. 이것은 드라이버의 로그에 인쇄됩니다.Spark - 실패한 작업을 식별하는 방법
Exception in thread "main" org.apache.spark.sql.AnalysisException: Path does not exist: s3n://data/2016-08-31/*.csv;
at org.apache.spark.sql.catalyst.analysis.CheckAnalysis$class.failAnalysis(CheckAnalysis.scala:40)
at org.apache.spark.sql.catalyst.analysis.Analyzer.failAnalysis(Analyzer.scala:58)
at org.apache.spark.sql.catalyst.analysis.CheckAnalysis$$anonfun$checkAnalysis$1.apply(CheckAnalysis.scala:174)
at org.apache.spark.sql.catalyst.analysis.CheckAnalysis$$anonfun$checkAnalysis$1.apply(CheckAnalysis.scala:67)
...
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:729)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:185)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:210)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:124)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
16/09/03 10:51:54 INFO SparkContext: Invoking stop() from shutdown hook
16/09/03 10:51:54 INFO SparkUI: Stopped Spark web UI at http://192.168.1.33:4040
16/09/03 10:51:54 INFO StandaloneSchedulerBackend: Shutting down all executors
16/09/03 10:51:54 INFO CoarseGrainedSchedulerBackend$DriverEndpoint: Asking each executor to shut down
Spark App app-20160903105040-0007 state changed to FINISHED
그러나이 잡히지 않은 예외에도 불구하고 내 스파크 작업 상태는 '끝났습니다'입니다. 예외가 있었기 때문에 'FAILED'상태가 될 것으로 예상됩니다. 왜 그것이 마침으로 표시되어 있습니까? 작업이 실패했는지 여부는 어떻게 알 수 있습니까?
참고 : SparkLauncher를 사용하여 Spark 작업을 생성하고 AppHandle을 통해 상태 변경 내용을 듣고 있습니다. 하지만 내가받는 FAILED가 예상되는 곳에서받는 상태 변경은 완료되었습니다.
감사 카말. 그러나 프로그래밍 방식으로이를 수행하는 방법을 찾고 있습니다. 별도의 메모에서 Spark Master의 웹 UI조차도 'FINISHED'로 작업을 표시합니다. 여기서 'FAILED'로 예상됩니다. –
작업을 클릭하면 세부 정보를 볼 수 있습니다. 또한 작업이 실패하면 원사 UI의 실패한 작업 섹션에 표시됩니다. –