우리는 Apache Spark 1.4.0 클러스터가 있고 HDFS에서 350 쪽 마루 파일 세트의 데이터를로드하려고합니다. 현재 프로그램을 실행하려고하면 "OutOfMemory Error"드라이버가 발생합니다. Executor와 드라이버를 프로파일 링 한 결과, 드라이버 메모리가 지속적으로 증가 할 때 실행기 메모리가 일정하게 유지되는 것으로 나타났습니다. 우리는 다음과 같은 데이터를로드 각 마루 파일의 경우 :OOM 쪽모실에서 데이터를로드 중
sqlContext.read().format(PARQUET_OUT_TYPE).load("path").toJavaRDD(mappingFunction)
을하고, 그 후, 우리는 "노동 조합"에 의해 RDDs에 가입하고 그 다음 우리는 그들을 나에게 정말 이상한 보이는 무엇
partitions.reduce((r1,r2) -> r1.union(r2).coalesce(PARTITION_COUNT))
입니다 유착 실행기 메모리는로드 단계에서 일정하게 유지됩니다 (노드가 읽는 데이터의 증가로 인해 증가 할 것으로 예상되는 경우). 그리고 드라이버 메모리가 지속적으로 증가합니다 (로드 될 필요가 없기 때문에 계속 유지 될 것으로 예상 할 때). 드라이버 메모리).
데이터를로드하는 방식에 문제가 있습니까? 병렬로 마루에서 데이터를 읽는 방법을 설명해 주시겠습니까?
감사