- 압축
- gzip이 일반적 목적의 압축 도구이며, 공간/시간 트레이드오프의 중앙에 위치함
- bzip2는 느리지만 분할 압축이 가능함
- Map 출력을 LZO, LZ4, Snappy와 같은 빠른 압축기를 사용하여 전송할 데이터양을 줄이면 성능을 향상시킬 수 있음
- 시스템에서 I/O와 CPU 중 어떤 자원에 더 여유가 있는지 혹은 데이터에 종류와 특성에 따라 압축 여부와 압축 도구를 선정해야 함
- 직렬화
- 직렬화(Serialization)
- 네트워크 전송을 위해 구조화된 객체를 바이트 스트림으로 전환하는 과정
- 역직렬화(Deserialization)
- 바이트 스트림을 일련의 구조화된 객체로 역전환하는 과정
- Hadoop은 Writable이라는 매우 간결하고 빠른 자체 직렬화 포맷을 사용함
- Text (Writable), IntWritable, NullWritable, ObjectWritable 등
- 파일 기반 데이터 구조
- SequenceFile
- 바이너리 키-값 쌍에 대한 영구적인 데이터 구조를 제공함
- 키와 값은 Serialization으로 직렬화되고 역직렬화될 수 있는 어떤 타입이라도 이용 가능
- 이외에도 MapFile, 행 기반 파일 포맷(시퀀스 파일, 맵 파일, 에이브로 데이터파일 등), 컬럼 기반 파일 포맷(하이브의 RCFile과 ORCFile 및 Parquet, Avro의 Trevni 등)이 있음
'Development > Hadoop' 카테고리의 다른 글
하둡 공부 - MapReduce 실행 (0) | 2019.01.24 |
---|---|
하둡 공부 - MapReduce 작동 방법 (0) | 2019.01.24 |
하둡 공부 - YARN (0) | 2019.01.24 |
하둡 공부 - Hadoop Read & Write (0) | 2019.01.24 |
하둡 공부 - HDFS (0) | 2019.01.24 |