10 문제 -14 스파크 및 성능 최적화 솔루션 비밀 스파크 커널

질문 1 : 부적절 감소 작업의 수

해결 방법 :

       실제 상황에 따라 기본 구성을 조정해야 매개 변수 조정 모드를 수정하는 것입니다 스파크 .default.parallelism을. 일반적으로, 숫자는 코어의 2 ~ 3 배의 수를 줄이기 위해 설정됩니다. 수 많은 작은 작업의 결과로 작업을 시작의 비용을 증가, 너무 큰이며, 숫자가 너무 작습니다, 작업이 느리게 실행됩니다. 그래서 spark.default.parallelism이 수를 줄이는 작업을 수정하는 것이 합리적이다


질문 2 : 오랜 시간 동안 디스크 IO 셔플

해결 방법 :

       Spark.local.dir는 복수의 디스크에 제공되고, 디스크 IO 디스크 세트 빠른 속도 셔플 IO을 증가시켜 성능을 최적화하는 단계;


질문 3 : | 셔플 파일과 더 적은 수의 결과로 감소의 많은지도

해결 방법 :

       셔플 중간 파일을 병합, true로 설정하여 Spark.shuffle.consolidateFiles,이 때 파일 수는 작업을 줄일 수있다;


질문 4 : 직렬화 오랜 시간 큰의 결과

해결 방법 :

       JDK 기본 불꽃이 방법으로 생산 된 ObjectOutputStream에, 큰 결과를 제공, CPU 처리 시간이 긴, org.apache.spark.serializer.KeyoSerializer을 spark.serializer하도록 설정할 수 있습니다.

결과가 좋았어요 경우에도, 당신이 결과를 알고 방송 변수 방법을 사용하는 것이 가장 좋습니다.


질문 5 : 단일 레코드 소비

해결 방법 :

       맵이 계산되는 각 레코드의 파티션이있는 동안 사용 mapPartition 또는지도는, mapPartition, 각 파티션에 대해 계산된다


질문 6 : 당신은 느린 출력 결과 많은 수의를 수집하는 경우

해결 방법 :

       모든 소스 코드를 수집하는 분산 파일 시스템에 직접 출력하고, 파일 시스템의 내용을 볼 수있는 메모리의 배열 방식의 결과이고;


질문 7 : 작업 실행 속도 기울기

해결 방법 :

       데이터 스큐는 일반적으로 좋은 파티션 키를 달성하는 경우, 다른 병렬 처리를 고려하고, 집계 작업으로 중간에있다 작업자가 spark.speculation을 설정하여 실행 프로그램 노동자 느린 구현의 일부에, 예를 들어, 기울어 진 경우 = 사실 천천히 그 노드가 제거 지속;


질문 8 : 많은 작은 작업이 비어 생성 한 또는 여러 단계의 작업에 의해 RDD 작업

해결 방법 :

       사용하거나 파티션의 RDD의 재분할의 수를 줄이기 위해 합체;


질문 9 : 스파크 스트리밍 높은 처리량 아니다

해결 방법 :

       당신은 spark.streaming.concurrentJobs을 설정할 수 있습니다


질문 10 : 갑자기 떨어 스파크 스트리밍 속도, 종종 작업 지연 및 방해가

해결 방법 :

       우리가 작업 시간 간격이 지정된 시간에 완료 할 수 없습니다 각 작업의 정상적인 실행의 결과로 너무 짧은 간격, 즉, 시간 창 간격이 너무 조밀 만든 창입니다 시작 설정 때문입니다;

추천

출처blog.csdn.net/weixin_42177380/article/details/90711620