0

하나의 테이블에 200 만 개의 레코드가있는 30,000,000 개의 레코드가 있고 두 번째 테이블에 200 개의 컬럼이있는 1 백만 개의 레코드가 들어있는 두 개의 테이블을 병합하는 경우가 있습니다. 작은 테이블에 브로드 캐스트 조인을 사용하고 있습니다. 두 테이블을 모두 데이터 프레임 HDFS의 하이브 관리 테이블에서.spark-submit을 사용하여 spark scala code가 원사에서 작동하도록 설정하는 성능 매개 변수는 무엇입니까?

이 유스 케이스에서는 드라이버 메모리와 실행기 메모리 및 기타 매개 변수를 설정할 값이 필요합니다.

는 내 원사 클러스터에 대한이 하드웨어 구성이 있습니다

스파크 버전 2.0.0

HDP 버전 2.5.3.0-37

1) 원사 클라이언트를 20

2) 최대 컨테이너에 할당 된 가상 코어 (yarn.scheduler.maximum.allocation-vcores) 19

3) Max. 2백16기가바이트 원사 컨테이너

당신은 내가이 클러스터에 제공 할 수 필요한 다른 정보를 사용할 수

4) 클러스터 메모리 사용 가능한 3.1 TB에 할당 된 메모리입니다.

이 과정을 완료하려면 시간을 줄여야합니다.

나는 약간의 구성을 사용하고있다. 그러나 나는 그것이 틀린다고 생각한다, 그것을 완료하는 데 나에게 4.5 분이 걸렸다. 그러나 나는 스파크가이 시간을 줄이는 능력을 가지고 있다고 생각한다.

+0

RAM에 테이블을 캐시하고 있습니까? –

+0

@anshul_cached 아니오 "spark.table ("table_name ")"코드를 사용하여 테이블을 데이터 프레임으로로드 한 다음 병합을 위해 프레임을 진행합니다. 병합 후 테이블을 ORC로 저장 한 하이브에 다시 쓰고 있습니다. –

+0

데이터 프레임을 RAM에 캐시하고 카운트 동작을 수행 한 다음 나머지 데이터를 적용하십시오. –

답변

관련 문제