복붙노트

[HADOOP] 하나의 커다란 쪽모퉁 파일이나 작은 쪽모퉁 파일을 많이 가지고있는 것이 더 낫습니다.

HADOOP

하나의 커다란 쪽모퉁 파일이나 작은 쪽모퉁 파일을 많이 가지고있는 것이 더 낫습니다.

나는 hdfs가 파일을 64MB 청크와 같은 것으로 나눌 것이라는 것을 이해한다. 우리는 스트리밍 방식으로 데이터를 가져와 대용량 파일이나 중간 크기의 파일에 저장할 수 있습니다. 컬럼 형 파일 저장을위한 최적의 크기는 얼마입니까? 가장 작은 열이 64MB 인 곳에 파일을 저장할 수 있다면, 1GB의 파일을 가지고있는 것보다 계산 시간을 절약 할 수 있을까요?

해결법

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

    1.파일 당 약 1GB를 목표로하십시오 (스파크 파티션) (1).

    파일 당 약 1GB를 목표로하십시오 (스파크 파티션) (1).

    splittable (2) 인 압축 된 작은 쪽모퉁 파일로 인해 이상적인 압축 볼륨 (기본값)을 사용하는 것이 이상적입니다.

    gzip 대신 snappy를 사용하면 파일 크기가 크게 증가하므로 저장 공간이 문제가되는 경우이를 고려해야합니다.

    .option ( "compression", "gzip")은 기본 스냅을 무시하는 옵션입니다.

    데이터 집합 / DataFrame / RDD의 크기를 조정하거나 다시 분할해야하는 경우 .coalesce ( 또는 최악의 경우 .repartition () 함수를 호출하십시오.) 경고 : 특히 다시 분할하면 병합으로 인해 데이터가 다시 분할 될 수 있으므로 몇 가지주의를 기울여 사용하십시오.

    또한 마루 파일 크기와 관련하여 모든 파일의 크기는 일반적으로 HDFS 블록 크기 (기본 128MB)보다 커야합니다.

    1) https://forums.databricks.com/questions/101/what-is-an-optimal-size-for-file-partitions-using.html 2) http://boristyukin.com/is-snappy-compressed-parquet-file-splittable/

  2. from https://stackoverflow.com/questions/42918663/is-it-better-to-have-one-large-parquet-file-or-lots-of-smaller-parquet-files by cc-by-sa and MIT license