복붙노트

[SCALA] 스파크를 사용하여 간헐적 시간 제한 예외

SCALA

스파크를 사용하여 간헐적 시간 제한 예외

나는 10 개 노드가있는 불꽃 클러스터를했습니다, 나는 처음으로 스파크 컨텍스트를 사용 후이 예외를 받고 있어요 :

14/11/20 11:15:13 ERROR UserGroupInformation: PriviledgedActionException as:iuberdata (auth:SIMPLE) cause:java.util.concurrent.TimeoutException: Futures timed out after [120 seconds]
Exception in thread "main" java.lang.reflect.UndeclaredThrowableException: Unknown exception in doAs
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1421)
    at org.apache.spark.deploy.SparkHadoopUtil.runAsSparkUser(SparkHadoopUtil.scala:52)
    at org.apache.spark.executor.CoarseGrainedExecutorBackend$.run(CoarseGrainedExecutorBackend.scala:113)
    at org.apache.spark.executor.CoarseGrainedExecutorBackend$.main(CoarseGrainedExecutorBackend.scala:156)
    at org.apache.spark.executor.CoarseGrainedExecutorBackend.main(CoarseGrainedExecutorBackend.scala)
Caused by: java.security.PrivilegedActionException: java.util.concurrent.TimeoutException: Futures timed out after [120 seconds]
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1408)
    ... 4 more

이 사람은 비슷한 문제가 있었다 그러나 나는 이미 자신의 솔루션을 시도하고 일을하지 않았다.

같은 예외도 여기에 발생하지만 모두 마스터 또는 슬레이브와 클라이언트에서 스파크 버전 1.1.0을 사용하고 같은 문제는 여기에서 그들을 동일하지 않습니다.

나는 120S에 제한 시간을 증가시키기 위해 노력했지만 여전히 문제가 해결되지 않습니다.

나는 스크립트 축복하는 환경을 doploying 그리고 난 클래스 패스에 내 코드를 포함하도록 context.addJar을 사용하고 있습니다. 이 문제는 간헐이고, 나는 그것이 일어나는 이유를 추적하는 방법에 대한 어떤 생각을 가지고 있지 않습니다. 스파크 클러스터가 그것을 해결하는 방법을 알고 구성 할 때 아무도이 문제에 직면하고있다?

해결법

  1. ==============================

    1.우리는 디버그 및 분리에 매우 힘들었다 비슷한 문제가 있었다. 짧은 긴 이야기 - 스파크는 IP 주소로 해결 FQDN 호스트 이름에 대해 매우 까다 롭고입니다 Akka를 사용합니다. 모든 장소에서 IP 주소를 지정하더라도 그것은 충분하지 않습니다. 답은 여기에 우리가 문제를 격리 도움을 주었다.

    우리는 디버그 및 분리에 매우 힘들었다 비슷한 문제가 있었다. 짧은 긴 이야기 - 스파크는 IP 주소로 해결 FQDN 호스트 이름에 대해 매우 까다 롭고입니다 Akka를 사용합니다. 모든 장소에서 IP 주소를 지정하더라도 그것은 충분하지 않습니다. 답은 여기에 우리가 문제를 격리 도움을 주었다.

    실행에 유용한 테스트는 연결을 테스트 할 수있는 근로자에 ​​마스터 및 실행 NC -Vz <호스트> <포트>에 netcat을 -l <포트> 실행됩니다. IP 주소와 FQDN이 테스트를 실행합니다. 당신은 이름 스파크 아래의 로그 조각의 WARN 메시지에서 사용 얻을 수 있습니다. 우리에게 그것은 host032s4.staging.companynameremoved.info했다. 우리의 IP 주소 테스트를 통과하고 우리의 DNS로 실패 FQDN 테스트가 제대로 설치되지 않았습니다.

    INFO 2015-07-24 10:33:45 Remoting: Remoting started; listening on addresses :[akka.tcp://driverPropsFetcher@10.40.246.168:35455]
    INFO 2015-07-24 10:33:45 Remoting: Remoting now listens on addresses: [akka.tcp://driverPropsFetcher@10.40.246.168:35455]
    INFO 2015-07-24 10:33:45 org.apache.spark.util.Utils: Successfully started service 'driverPropsFetcher' on port 35455.
    WARN 2015-07-24 10:33:45 Remoting: Tried to associate with unreachable remote address [akka.tcp://sparkDriver@host032s4.staging.companynameremoved.info:50855]. Address is now gated for 60000 ms, all messages to this address will be delivered to dead letters.
    ERROR 2015-07-24 10:34:15 org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:skumar cause:java.util.concurrent.TimeoutException: Futures timed out after [30 seconds]
    

    우리가해야 할 일을했을 또 다른 것은 스파크의 spark.driver.host 및 spark.driver.port 속성은 스크립트를 제출 지정했다. 우리는 두 개의 IP 주소를 사용하여 기계를 가지고와 FQDN이 잘못된 IP 주소로 확인할 수 있기 때문이다.

    확인 네트워크 및 DNS 항목이 올바른지!

  2. ==============================

    2.방화벽은 어떤 경우에, 그것은 노예가 클러스터에 연결하는 것이 허용되지 않았다 missconfigured 하였다. 노예가 서버에 연결할 수 없습니다 이것은, 시간 제한 문제를 생성합니다. 이 시간 제한에 직면하는 경우, 방화벽 CONFIGS을 확인합니다.

    방화벽은 어떤 경우에, 그것은 노예가 클러스터에 연결하는 것이 허용되지 않았다 missconfigured 하였다. 노예가 서버에 연결할 수 없습니다 이것은, 시간 제한 문제를 생성합니다. 이 시간 제한에 직면하는 경우, 방화벽 CONFIGS을 확인합니다.

  3. ==============================

    3.나는 비슷한 문제가 있었다 나는 스파크에 신청서를 제출하면 클러스터 배포 모드를 사용하여 주위를 얻을 수 있었다.

    나는 비슷한 문제가 있었다 나는 스파크에 신청서를 제출하면 클러스터 배포 모드를 사용하여 주위를 얻을 수 있었다.

    (심지어 내 모든 마스터와 나 클라이언트 배포 모드를 사용하는 것을 허용하지 않았다 단일 슬레이브 모두에 ​​들어오는 트래픽을 허용하기 때문에. 스파크 1.2에서 스파크 EC2 스크립트가 설정 한 기본 보안 그룹 (AWS 방화벽) 설정을했다 I를 변경하기 전에 0.0).

  4. from https://stackoverflow.com/questions/27039954/intermittent-timeout-exception-using-spark by cc-by-sa and MIT license