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"