파일시스템

파일시스템 (File Systems)

Pinot이 지원하는 파일시스템에서 데이터를 가져오는 방법을 보여 주는 짧은 가이드 모음이에요.

출처: File Systems

본문

FileSystem은 분산 파일시스템(DFS)에 저장된 데이터에 접근하기 위해 Pinot이 제공하는 추상화예요.

Pinot은 분산 파일시스템을 다음 용도로 사용해요:

  • 배치 수집 잡: 입력 데이터(CSV, Avro, Thrift 등)를 읽고 생성된 세그먼트를 DFS에 쓰는 용도.
  • 컨트롤러: 세그먼트가 컨트롤러에 업로드되면 컨트롤러는 구성된 DFS에 저장해요.
  • 서버: 서버가 새 세그먼트를 통보받으면 DFS 추상화를 이용해 원격 DFS에서 로컬 노드로 세그먼트를 복사해요.

지원되는 파일시스템 (Supported file systems)

Pinot은 분산 파일시스템 제공자를 선택하게 해요. Pinot이 지원하는 파일시스템은 다음과 같아요:

파일시스템 활성화 (Enabling a file system)

분산 파일시스템을 사용하려면 플러그인을 활성화해야 해요. 그러려면 플러그인 디렉터리를 지정하고 필요한 플러그인을 포함하세요:

-Dplugins.dir=/opt/pinot/plugins -Dplugins.include=pinot-plugin-to-include-1,pinot-plugin-to-include-2

controller와 server 구성에서 파일시스템을 바꿀 수 있어요. 다음 구성 예에서 URI는 s3://bucket/path/to/file이고, scheme은 파일시스템 URI 접두사 s3을 의미해요.

#CONTROLLER

pinot.controller.storage.factory.class.[scheme]=className of the pinot file system
pinot.controller.segment.fetcher.protocols=file,http,[scheme]
pinot.controller.segment.fetcher.[scheme].class=org.apache.pinot.common.utils.fetcher.PinotFSSegmentFetcher
#SERVER

pinot.server.storage.factory.class.[scheme]=className of the Pinot file system
pinot.server.segment.fetcher.protocols=file,http,[scheme]
pinot.server.segment.fetcher.[scheme].class=org.apache.pinot.common.utils.fetcher.PinotFSSegmentFetcher

수집 중에도 파일시스템을 바꿀 수 있어요. 수집 잡 스펙에서 다음 구성으로 파일시스템을 지정하세요:

pinotFSSpecs
  - scheme: file
    className: org.apache.pinot.spi.filesystem.LocalPinotFS

더 알아보기 (Learn more)