spark - OutOfmory: GC 오 버 헤드 제한 초과 해결

913 단어 빅 데이터spark
오늘 은 자신의 spark 프로그램 을 실행 하려 고 했 으 나, 실행 중 OutOfmory: GC overhead limit exceeded 의 오류 가 발생 했 습 니 다.
데이터 세트 가 너무 큰 줄 알 고 구 글 은 메모리 가 부족 한 줄 알 았 는데 웹 ui 에서 보 니 데이터 세트 도 크 지 않 은 것 같 지만 메모리 설정 을 향상 시 키 려 고 시도 했다.
다시 실행 해 보 니 문 제 는 여전 하 다.고민 끝 에 Spark User Mailing List 의 한 질의 응답 글 을 찾 았 는데, 누 군 가 는 나 와 같은 질문 을 받 았 다.게시 물 에 서 는 executor core 의 수량 이 너무 많아 서 여러 개의 core 간 에 gc 시간 과 자원 (주로 메모리 자원 이 어야 함) 을 쟁탈 하 게 되 었 고 마지막 으로 대부분의 시간 을 gc 에 썼 다 는 새로운 해석 을 발견 했다.
그의 건의 에 따라 저 는 core 수량 을 4 에서 1 로 바 꾸 었 습 니 다. (극단 적 입 니 다. 정말 성공 적 으로 운행 하기 위해 서 입 니 다. 저 는 맞 추 었 습 니 다) 방법 은 spark standalone 클 러 스 터 모드 이기 때문에 conf / spark - env. sh 중의 spark.executor.memory 를 직접 편집 하 는 것 입 니 다.
운행, 성 공 했 습 니 다.
속도 와 효율 을 높이 기 위해 병행 하 는 것 이 었 는데 오히려 운행 에 실 패 했 습 니 다.구체 적 인 원인 은 아직 잘 모 르 겠 습 니 다. jvm 의 gc 에 대해 저도 잘 모 르 겠 습 니 다. 심지어 오늘 에 야 저 는 spark 의 다른 환경 파 라 메 터 를 설정 하려 고 했 습 니 다. 공 부 를 많이 해 야 합 니 다!

좋은 웹페이지 즐겨찾기