복붙노트

[HADOOP] Spark 2.0은 'DirectParquetOutputCommitter'를 사용하지 않습니다. 어떻게 사용하지 않고 살 수 있습니까?

HADOOP

Spark 2.0은 'DirectParquetOutputCommitter'를 사용하지 않습니다. 어떻게 사용하지 않고 살 수 있습니까?

최근에 우리는 "EMR on HDFS"- "EMR on S3"(일관된보기가 활성화 된 EMRFS)에서 마이그레이션했으며 Spark 'SaveAsTable'(마루판 형식)을 S3에 쓰는 것이 HDFS에 비해 ~ 4 배 느린 것을 알았지 만 DirectParquetOutputCommitter - [1] w / Spark 1.6을 사용하는 방법.

S3 느린 이유 - 기본 출력 커미터가 임시 테이블에 쓰고 나중에 S3의 이름 바꾸기 작업이 매우 비싼 곳에서 이름을 바꾸는 이른바 Parquet 세금 [2]을 지불해야했습니다.

또한 우리는 투기 작업이 가능한 데이터 손상의 가능성이있는 'DirectParquetOutputCommitter'를 사용할 위험성을 이해합니다.

이제이 Spark 2.0이 더 이상 사용되지 않으며 Spark 2.0으로 업그레이드 할 때 ~ 4x 느린 쓰기를 수행하지 않도록 테이블에서 어떤 옵션을 사용하는지 궁금합니다. 모든 생각 / 제안 / 권장 사항은 높이 평가 될 것입니다.

우리가 생각할 수있는 한 가지 해결 방법은 - HDFS에 저장 한 다음 s3DistCp를 통해 S3에 복사하는 것입니다 (하이브 메타 데이터 저장소가 S3을 가리키는 것처럼 정상적으로 수행 할 수있는 방법에 대한 생각은 없습니까?).

또한 NetFlix가 이것을 고쳐 놓은 것처럼 보입니다 - [3], 소스를 열 계획은 있을까요?

감사.

[1] - https://github.com/apache/spark/blob/21d5ca128bf3afd5c2d4c7fcc56240e28443474f/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/DirectParquetOutputCommitter.scala

[2] - https://www.appsflyer.com/blog/the-bleeding-edge-spark-parquet-and-s3/

[3] - https://www.youtube.com/watch?v=85sew9OFaYc&feature=youtu.be&t=8m39s http://www.slideshare.net/AmazonWebServices/bdt303-running-spark-and-presto-on-the-netflix-big-data-platform

해결법

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

    1.다음을 사용할 수 있습니다 : sparkContext.hadoopConfiguration.set ( "mapreduce.fileoutputcommitter.algorithm.version", "2")

    다음을 사용할 수 있습니다 : sparkContext.hadoopConfiguration.set ( "mapreduce.fileoutputcommitter.algorithm.version", "2")

    EMR을 사용하고 있기 때문에 s3 (s3a 필요 없음)

    우리는 Spark 2.0을 사용하고 있으며, Parquet를 S3에 작성하는 것은 꽤 빠릅니다 (대략 HDFS만큼 빠름)

    이 jira 티켓을 더 자세히 읽고 싶다면 SPARK-10063

  2. ==============================

    2.Netflix의 S3 커미터는 이미 https://github.com/rdblue/s3committer에서 오픈 소스로 운영되고 있다고 생각합니다.

    Netflix의 S3 커미터는 이미 https://github.com/rdblue/s3committer에서 오픈 소스로 운영되고 있다고 생각합니다.

  3. from https://stackoverflow.com/questions/39630120/spark-2-0-deprecates-directparquetoutputcommitter-how-to-live-without-it by cc-by-sa and MIT license