복붙노트

[HADOOP] Spark에서 RDD 비싼 작업의 기록을 세고 있습니까?

HADOOP

Spark에서 RDD 비싼 작업의 기록을 세고 있습니까?

Hadoop에서 입력 형식 판독기를 사용할 때 작업 수준의 로그는 읽은 레코드 수를보고하고 바이트 수 등도 표시합니다.

Spark에서는 동일한 입력 형식 판독기를 사용할 때 해당 메트릭 중 아무 것도 얻지 못합니다.

그래서 나는 입력 형식 판독기를 사용하여 rdd를 채우고 rdd (rdd 크기)의 레코드 수를 게시한다고 생각합니다.

나는 rdd.count ()가 rdd의 크기를 반환한다는 것을 알고있다.

그러나 count ()를 사용하는 데 드는 비용은 분명하지 않습니다. 예 :

해결법

  1. ==============================

    1.백작이 배포됩니다. 스파크 명칭에서 카운트는 "액션"입니다. 모든 작업이 배포됩니다. 실제로 모든 데이터를 드라이버 노드로 가져 오는 소수의 것들이 있으며 일반적으로 문서화되어 있습니다 (예 : 테이크, 수집 등)

    백작이 배포됩니다. 스파크 명칭에서 카운트는 "액션"입니다. 모든 작업이 배포됩니다. 실제로 모든 데이터를 드라이버 노드로 가져 오는 소수의 것들이 있으며 일반적으로 문서화되어 있습니다 (예 : 테이크, 수집 등)

    아니요, 데이터는 메모리에 저장되지 않습니다. 원한다면 계산 전에 명시 적으로 캐시해야합니다. 스파크의 게으른 평가는 액션이 ​​취해질 때까지 계산을하지 않습니다. 캐시 호출이 없으면 작업 후에 메모리에 데이터가 저장되지 않습니다.

    캐시, 계산, 운영은 탄탄한 계획처럼 보입니다.

  2. from https://stackoverflow.com/questions/36723963/in-spark-is-counting-the-records-in-an-rdd-expensive-task by cc-by-sa and MIT license