2017-02-02 1 views
1

Spark 1.6.1과 Scala 2.10을 사용하여 Scala로 작성된 GraphX를 통해 데이터 세트를 조인하고 연결하는 코드를 작성했습니다.Spark GraphX ​​spark-shell과 spark-submit 성능 차이점

스파크 셸에서이 코드를 실행하면 실행자 10 명, 실행자 10 명, 메모리 10g으로 완료됩니다. & 실행 프로그램 당 5 cpu.

spark-submit을 사용하여 fat jar에서 실행하면 프로세스가 메모리 부족 오류로 넘어져 그 지점에 도달하는 데 1 시간 30 분이 걸립니다.

아무도 아이디어의 원인이 될 수 있습니까?

누군가가 셸에서 SparkContext 및 SQLContext를 설정하는 방법을 알고 있으며 spark-submit 실행 문제가 너무 심하게 발생할 수있는 자체 Context를 설정하는 데 빠진 항목이 있다면 알려주십시오.

답변

0

맞다면 나는 잠시이 문제를 다시 파악 그냥 다시는 내 질문에 부딪쳤다. 그래서 생각은 내가 그것을 고쳤던 방식으로 업데이트 될 것이다. 이 문제는 스파크 제출과 스파크 셸의 차이가 아니지만 실행중인 코드 구조의 차이입니다.

셸에서 코드를 한 번에 한 번 실행하면 코드가 빠르고 효율적으로 생성됩니다.

Spark Submit를 사용하면 코드를 패키지로 만들고 상속 기능을 사용하여 코드를 쉽게 공유하고 재사용 할 수있게했지만 스파크 코드가 복잡하고 비효율적이었습니다. 상속의 대부분을 제거하고 더 간단한 기능 코드를 작성하여 성능이 빠르고 효율적으로 되돌아갔습니다.

여기에 나오는 교훈은 응용 프로그램을 너무 많이 사용하지 말고 거의 상속하지 않는 것을 확인하는 것입니다.하지만 코드를 간단하고 기능적으로 유지해야만 Spark에서 효율적으로 빠르게 생성 할 수 있습니다 클러스터에서 실행할 코드

0

차이가 없어야합니다.

spark-submit 설정을 확인하십시오. 아마도 일부 설정이 올바르지 않고 spark-submit의 실행자 또는 메모리 수가 적습니다. 데이터가 왜곡없는 경우

열기 스파크 웹 UI는 확인하고 모든 구성이

+0

우리는 설정이 동일하다는 것을 확인했습니다. 그리고 spark-submit보다 많은 리소스를 쉘에 제공하더라도 문제가 계속 발생합니다. 또한 데이터가 왜곡 된 경우 쉘에 영향을 미치고 같은 방식으로 제출해야합니다. –

+0

@AndyLong Spark Web UI에서 매개 변수 값을 확인할 수 있습니까? –

+0

일부 설정이 무시되어 웹 UI에서 정보를 확인하려고합니다. –

관련 문제