HDFS 파일 수집과 기존 내보내기
HDFS 커넥터는 Hadoop Distributed File System의 파일을 Foundry 데이터셋으로 가져옵니다. 원천 탐색과 대량 가져오기를 일반 제공(GA)합니다. 파일 형식을 보존하며 전송 과정이나 전송 후에 스키마를 자동 적용하지 않으므로 출력 데이터셋에 스키마를 지정하거나 하위 변환에서 내용을 해석합니다.
파일 크기 자체에는 전송 한도가 없습니다. 다만 대규모 전송은 네트워크 문제로 실패할 수 있고, 이틀 넘게 실행되는 직접 클라우드 동기화는 중단됩니다. 작은 파일과 실행당 제한된 파일 수를 사용하고 더 자주 동기화하는 구성을 검토합니다.
소스와 네트워크
Data Connection의 +New Source에서 HDFS 소스를 선택합니다. 가능하면 RPC 성능이 좋은 HDFS 스킴을 사용합니다. WebHDFS는 HDFS FileSystem 인터페이스를 제공하는 HTTP REST API 경로입니다.
다음 주소는 형식 예시입니다.
hdfs://myhost.example.com:1234/path/to/root/directory
webhdfs://example.com/path
swebhdfs://example.com/path
필요한 포트는 선택한 스킴과 서버 구성에 따라 다릅니다. HDFS에서는 NameNode의 8020 또는 9000, DataNode의 1019, 50010, 50020이 일반적인 대상입니다. WebHDFS에서는 보통 9820을 사용합니다. 실제 클러스터의 포트에 맞춰 연결 정책을 구성합니다.
SSL 연결은 서버 인증서를 검증합니다. Foundry 워커와 에이전트는 일반적인 공인 인증서 체인을 기본 신뢰합니다. 자체 서명 인증서나 TLS 중간 검사가 있으면 해당 인증서를 소스의 신뢰 구성에 추가해야 합니다.
연결 속성
| 항목 | 필수 여부 | 의미 |
|---|---|---|
URL | 필수 | 데이터 루트 디렉터리의 HDFS URL입니다. |
Extra properties | 선택 | Hadoop Configuration에 전달할 이름과 값의 맵입니다. 디스크의 configurationResources 파일 대신 속성을 직접 지정할 수 있습니다. |
User | 선택 | HDFS 사용자입니다. 기존 에이전트 워커에서는 호스트에 로그인한 사용자가 기본값입니다. |
File change timeout | 선택 | 업로드 대상으로 인정하기 전에 파일이 변경되지 않고 유지되어야 할 ISO 8601 기간입니다. 가능하면 더 효율적인 lastModifiedBefore 프로세서를 사용합니다. |
user 매개변수는 Data Connection의 전역 Kerberos 설정보다 우선합니다. Kerberos를 사용하면 이 값을 비워 둡니다.
동기화
Explore 탭에서 HDFS 데이터를 탐색하고 New Sync로 정기 수집을 구성합니다. 출력 Foundry 데이터셋과 파일 선택 조건을 지정합니다.
기존 HDFS Export task
Export tasks는 Legacy 기능이며 신규 구현에는 권장하지 않습니다. 기존 작업은 다음 구성으로 HDFS의 지정 디렉터리에 파일을 씁니다. 아래 경로는 예시입니다.
type: export-hdfs-task
directoryPath: /some/directory
| 속성 | 필수 여부 | 기본값 | 의미 |
|---|---|---|---|
directoryPath | 필수 | 없음 | 파일을 쓸 디렉터리입니다. |
incrementalType | 선택 | snapshot | 증분 내보내기는 incremental로 지정합니다. |
retriesPerFile | 선택 | 0 | 파일 실패 시 재시도 횟수입니다. |
rewritePaths | 선택 | 없음 | 출력 경로를 바꿀 정규식 패턴과 치환값의 맵입니다. |
증분 내보내기
첫 실행은 모든 파일을 내보냅니다. 이후에는 이전에 처리한 트랜잭션이 데이터셋에 남아 있을 때 새 트랜잭션만 내보냅니다.
type: export-hdfs-task
directoryPath: /exports/incremental/
incrementalType: incremental
연결 실패 재시도
retriesPerFile: 1은 최초 시도 한 번에 재시도 한 번을 더해 파일마다 최대 두 번 전송을 시도한다는 뜻입니다.
type: export-hdfs-task
directoryPath: /some/directory
retriesPerFile: 1