Hive는 TextFile, SequenceFile, RcFile, OrcFile, ParquetFile포맷을 지원한다. 테이블의 파일형식을 지원하는 방법은 아래와 같다.
1. CREATE TABLE … STORE AS <File_Format>
2. ALTER TABLE … [PARTITION partition_spec] SET FILEFORMAT <File_Format>
3. SET hive.default.fileformat=<File_Format> (the default fileformat for table)
[1] File Compress
Hive의 압축은 Full압축이 아닌 중간파일압축(Intermediate compression)을 통해 매퍼와 리듀스 사이의 데이터전송량을 현저하게 줄인다. Hive가 생산한 중간파일을 여러 맵리듀스 작업간에 압축하려면 SET hive.exec.compress를 설정해야한다. (Default는 false)
- Deflate - org.apache.hadoop.io.compress.DefaultCodec
- GZip - org.apache.hadoop.io.compress.GzipCodec
- Bzip2 - org.apache.hadoop.io.compress.BZip2Codec
- LZO - com.hadoop.compression.lzo.LzopCodec
- LZ4 - org.apache.hadoop.io.compress.Lz4Codec
- Snappy - org.apache.hadoop.io.compress.SnappyCodec
ex)
SET mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec
set the following properties in mapred-site.xml:
- For MRv1:
<property> <name>mapred.compress.map.output</name> <value>true</value> </property> <property> <name>mapred.map.output.compression.codec</name> <value>org.apache.hadoop.io.compress.SnappyCodec</value> </property>
- For YARN:
<property> <name>mapreduce.map.output.compress</name> <value>true</value> </property> <property> <name>mapred.map.output.compress.codec</name> <value>org.apache.hadoop.io.compress.SnappyCodec</value> </property>
- ORC or Parquet파일 사용시
1.
SET parquet.compression=GZIP
SET parquet.compression=SNAPPY
2.
create table ...
tblproperties ("orc.compress"="SNAPPY")
tblproperties ("parquet.compress"="SNAPPY")
[2] Hot data
자주 쓰거나 스캔하는 데이터는 hdfs shell명령어로 hot data로 지정할 수 있다. hot data에 대한 데이터 복제팩터를 증가시키면 hive작업에 의해 참조할 가능성이 증가하고 쿼리성능이 향상될 수 있다. 경로가 디렉토리일 경우 디렉토리 아래에 있는 모든 파일의 복제팩터를 증가시킨다.
setrep
Usage: hdfs dfs -setrep [-R] [-w] <numReplicas> <path>
Changes the replication factor of a file. If path is a directory then the command recursively changes the replication factor of all files under the directory tree rooted at path.
Options:
- The -w flag requests that the command wait for the replication to complete. This can potentially take a very long time.
- The -R flag is accepted for backwards compatibility. It has no effect.
Example:
- hdfs dfs -setrep -w 3 /user/hadoop/dir1
Exit Code:
Returns 0 on success and -1 on error.
참조 :
https://timepasstechies.com/hive-tutorial-8-hive-performance-tuning-using-data-file-optimization-using-file-format-compression-storage-optimization/
댓글 없음:
댓글 쓰기