HDFS2 Sink 커넥터

HDFS2 Sink 커넥터

HDFS2 sink 커넥터는 Pulsar 토픽에서 메시지를 가져와 HDFS 파일에 저장하는 커넥터예요. Pulsar의 데이터를 Hadoop HDFS에 파일로 써 넣을 때 사용해요.

참고: 모든 Pulsar 커넥터는 download page에서 내려받을 수 있어요.

출처: 문서

본문

구성 (Configuration)

HDFS2 sink 커넥터의 구성에는 다음과 같은 프로퍼티가 있어요.

프로퍼티 (Property)

이름 타입 필수 기본값 설명
hdfsConfigResources String true None Hadoop 파일 시스템 구성을 담은 파일 또는 쉼표 구분 목록이에요. 예: 'core-site.xml', 'hdfs-site.xml'
directory String true None 파일을 읽거나 쓸 HDFS 디렉터리예요.
encoding String false None 파일의 문자 인코딩이에요. 예: UTF-8, ASCII
compression Compression false None HDFS 파일을 압축하거나 압축을 푸는 데 사용하는 압축 코덱이에요. 사용 가능한 옵션은 다음과 같아요.
BZIP2, DEFLATE, GZIP, LZ4, SNAPPY, ZSTANDARD
kerberosUserPrincipal String false None 인증에 사용하는 Kerberos 사용자의 principal 계정이에요.
keytab String false None 인증에 사용하는 Kerberos keytab 파일의 전체 경로명이에요.
filenamePrefix String true None HDFS 디렉터리 안에 생성되는 파일의 접두사예요. 예: topicA 값을 쓰면 topicA- 로 시작하는 파일이 생성돼요.
fileExtension String compression이 None으로 설정된 경우 true None HDFS에 쓰는 파일에 추가되는 확장자예요. 예: .txt, .seq
separator char false None 텍스트 파일에서 레코드를 구분하는 데 사용하는 문자예요. 값을 제공하지 않으면 모든 레코드의 내용이 하나의 연속된 바이트 배열로 이어져요.
syncInterval long false 0 HDFS 디스크로 데이터를 flush하는 호출 사이의 간격(밀리초)이에요.
maxPendingRecords int false Integer.MAX_VALUE ack하기 전에 메모리에 보관하는 최대 레코드 수예요. 이 프로퍼티를 1로 설정하면 레코드가 ack되기 전에 모든 레코드를 디스크로 보내요. 더 큰 값으로 설정하면 디스크로 flush하기 전에 레코드를 버퍼링할 수 있어요.
subdirectoryPattern String false None sink의 생성 시간과 연결된 하위 디렉터리예요. 이 패턴은 디렉터리 하위 디렉터리의 포맷된 패턴이에요. 패턴 문법은 DateTimeFormatter를 참고하세요.

예제 (Example)

HDFS2 sink 커넥터를 사용하기 전에 다음 방법 중 하나로 구성 파일을 만들어야 해요.

  • JSON
{
   "configs": {
      "hdfsConfigResources": "core-site.xml",
      "directory": "/foo/bar",
      "filenamePrefix": "prefix",
      "fileExtension": ".log",
      "compression": "SNAPPY",
      "subdirectoryPattern": "yyyy-MM-dd"
   }
}
  • YAML
configs:
    hdfsConfigResources: "core-site.xml"
    directory: "/foo/bar"
    filenamePrefix: "prefix"
    fileExtension: ".log"
    compression: "SNAPPY"
    subdirectoryPattern: "yyyy-MM-dd"

더 알아보기 (Learn more)