2

독립 실행 형 클러스터 모드에서 스파크 작업을 실행하는 동안 이러한 오류가 발생합니다. 일부 groupby, Pyspark : TaskMemoryManager : 페이지를 할당하지 못했습니다 : 오류 분석에서 도움이 필요합니다

  • count,
  • joins가 최종 df 다음 df.toPandas().to_csv()를 얻기 위해 실행

    • :

      내 스파크 작업을 목표로하고있다.

    입력 데이터 세트는 524Mb입니다. 내가 얻을 오류 :

    WARN TaskMemoryManager: Failed to allocate a page (33554432 bytes), try again.

    을 여러 번 후

    1. 이 NettyRpcEnv을 WARN 위, 다시 새로운 오류를 반복 : 실패를 무시 : java.util.concurrent.TimeoutException가 : 십초

      에 어떤 응답을 수신 할 수 없음
    2. org.apache.spark.rpc.RpcTimeoutException : 선물 시간 초과 후 [10 초]. 이 제한 시간은 spark.executor.heartbeatInterval에 의해 제어됩니다.

    3. at org.apache.spark.rpc.RpcTimeout. 조직 $ 아파치 $ 스파크 $의 RPC에 $의 RpcTimeout $$ createRpcTimeoutException는 이유 (집행 드라이버가 실행중인 작업 중 하나에 의한 종료)

    4. ExecutorLostFailure : 실행자 하트 비트 158295 MS 후에

    5. 예외 시간 초과는 요청을 처리하는 동안 무슨 일이 있었 ('127.0.0.1', 49128) 추적 (최근 호출 마지막) :

      파일 "/home/stp/spark-2.0.0-bin-hadoop2.7/python/pyspark/accumulators.py" , 줄 235, 처리 중 num_updates = read_int (self.rfile) 파일 "/home/stp/spark-2.0.0-bin-hadoop2.7/python/pyspark/serializer s.py ", 라인 (545), read_int 인상는 EOFError에서 는 EOFError

    6. 지난 ###에서

      ******** ##

      py4j.protocol.Py4JNetworkError는 :하는 동안 오류가 발생했습니다 오류로 인해 메모리 오류 (TaskMemoryManager)과 총 16기가바이트에서있을 수 있습니다, 나는 가정, 자바 서버 첫번째 생각에 (127.0.0.1:38073)

    에 연결, 프로세스는 최대 6기가바이트을 소모했다 , 9 + gb는 무료입니다. 또한 드라이버 메모리를 10G로 설정했습니다. 그래서 패스.

    하지만 최종 데이터 프레임에서 count() 또는 show()를 수행하면 성공한 것입니다. 그러나 toCsv를하는 동안 위의 오류/경고가 발생합니다.

    문제의 원인을 실제로 이해하거나 추측하지 마십시오.

    위의 오류를 분석하는 데 도움을주십시오. 어떤 도움이나 의견을 환영합니다. 감사.

  • 답변

    4

    여기에는 작은 테이블이 많이 있습니다 (< 10MB).그래서 우리는 브로드 캐스트를 사용하지 않기로 결정했고 그 외에 가비지 수집을 위해 G1GC를 사용하기 시작했습니다. $ SPARK_HOME에서 당신에게 이러한 항목을 추가 불꽃은 defaults.conf 파일/conf의

    spark.driver.extraJavaOptions -XX:+UseG1GC 
    spark.executor.extraJavaOptions -XX:+UseG1GC 
    spark.sql.autoBroadcastJoinThreshold -1 
    

    또는 대안으로 당신은 autoBroadcast에 대한 임계 값 크기를 조정하고 문제를 해결하는 것을 볼 수 있습니다.

    관련 문제