Skip to main content
QUICK REVIEW

[논문 리뷰] Column-Oriented Storage Techniques for MapReduce

Avrilia Floratou, Jignesh M. Patel|arXiv (Cornell University)|2011. 05. 21.
Cloud Computing and Resource Management참고 문헌 15인용 수 5
한 줄 요약

이 논문은 MapReduce 프로그래밍 모델을 유지하면서 Hadoop용 열 기반 저장 형식을 제안한다. 이중 직렬화, 새로운 스킵 리스트 기반 열 형식, 지연 기반 레코드 생성 기법을 활용하여 실제 워크로드에서 맵 단계에서 최대 100배의 성능 향상을 달성했으며, 복잡한 중첩 형식의 불필요한 역직렬화를 방지함으로써 1.5배의 성능 향상도 기대할 수 있다.

ABSTRACT

Users of MapReduce often run into performance problems when they scale up their workloads. Many of the problems they encounter can be overcome by applying techniques learned from over three decades of research on parallel DBMSs. However, translating these techniques to a MapReduce implementation such as Hadoop presents unique challenges that can lead to new design choices. This paper describes how column-oriented storage techniques can be incorporated in Hadoop in a way that preserves its popular programming APIs. We show that simply using binary storage formats in Hadoop can provide a 3x performance boost over the naive use of text files. We then introduce a column-oriented storage format that is compatible with the replication and scheduling constraints of Hadoop and show that it can speed up MapReduce jobs on real workloads by an order of magnitude. We also show that dealing with complex column types such as arrays, maps, and nested records, which are common in MapReduce jobs, can incur significant CPU overhead. Finally, we introduce a novel skip list column format and lazy record construction strategy that avoids deserializing unwanted records to provide an additional 1.5x performance boost. Experiments on a real intranet crawl are used to show that our column-oriented storage techniques can improve the performance of the map phase in Hadoop by as much as two orders of magnitude.

연구 동기 및 목표

  • 비효율적인 저장 및 I/O로 인한 대규모 MapReduce 워크로드의 성능 저하 문제를 해결하기 위해.
  • Hadoop의 프로그래밍 인터페이스를 손상시키지 않은 채 병렬 DBMS에서 유래한 열 기반 저장 기법을 Hadoop의 실행 모델에 적응시키기 위해.
  • 분산 환경에서 배열, 맵, 중첩 레코드와 같은 복잡한 열 형식을 효율적으로 지원하기 위해.
  • 복잡한 데이터 구조에서 사용되지 않는 레코드의 역직렬화로 인한 CPU 오버헤드를 최소화하기 위해.
  • Hadoop의 복제 및 스케줄링 제약 조건을 충족하는 저장 형식을 설계하기 위해.

제안 방법

  • 텍스트 파일 대신 이중 저장 형식을 채택하여 I/O 및 파싱 오버헤드를 감소시키기 위해.
  • Hadoop의 데이터 복제 및 작업 스케줄링 메커니즘과 일치하는 열 기반 저장 형식을 설계하기 위해.
  • 조건부 추출 및 인덱스 전용 스캔을 가속화하기 위해 스킵 리스트 기반의 열 형식을 도입하기 위해.
  • 필드가 실제로 접근될 때까지 역직렬화를 연기하는 지연 기반 레코드 생성 전략을 구현하기 위해.
  • 최소한의 런타임 비용으로 배열, 맵, 중첩 레코드와 같은 복잡한 형식을 지원하기 위해 형식을 확장하기 위해.
  • 기존 MapReduce API 및 Hadoop의 실행 모델과의 완전한 후행 호환성을 확보하기 위해.

실험 결과

연구 질문

  • RQ1프로그래밍 모델을 수정하지 않고도 열 기반 저장 형식이 MapReduce 성능을 향상시킬 수 있는가?
  • RQ2대규모 워크로드에서 이중 직렬화 방식이 텍스트 기반 형식 대비 I/O 및 CPU 효율성에서 어떻게 비교되는가?
  • RQ3열 기반 저장 형식과 스킵 리스트, 지연 역직렬화를 결합했을 때 얻을 수 있는 성능 향상은 어느 정도인가?
  • RQ4배열 및 중첩 레코드와 같은 복잡한 데이터 형식이 열 기반 형식에서 CPU 오버헤드에 어떤 영향을 미치는가?
  • RQ5조건부 추출 및 선택적 필드 접근을 통해 맵 단계의 처리 시간을 얼마나 줄일 수 있는가?

주요 결과

  • 단순히 이중 저장 형식을 사용하는 것만으로도 Hadoop에서 난이도 있는 텍스트 기반 저장 방식 대비 3배의 성능 향상을 달성한다.
  • 제안된 열 기반 저장 형식은 실제 워크로드에서 MapReduce 작업을 최대 10배(10배) 빠르게 한다.
  • 스킵 리스트 기반 열 형식과 지연 기반 레코드 생성 전략이 불필요한 역직렬화를 방지함으로써 추가로 1.5배의 성능 향상을 제공한다.
  • 이중 형식, 열 기반 레이아웃, 지연 처리의 조합이 실제 내부망 크롤링 워크로드에서 맵 단계 실행 시간을 최대 두 배수(100배) 감소시킨다.
  • 배열 및 중첩 레코드와 같은 복잡한 열 형식은 상당한 CPU 오버헤드를 유발하지만, 선택적 역직렬화를 통해 이를 완화할 수 있다.
  • 이 저장 형식은 Hadoop의 복제 및 스케줄링 제약 조건과 완전히 호환되어 기존 클러스터에 원활하게 통합될 수 있다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.