Cloudera CSD와 Parcel 구성 살펴보기
Cloudera Manager에서 별도 프로그램을 관리하려면 실행 파일을 전달하는 것 외에 서비스 설정과 실행 방법도 알려 줘야 합니다. 당시 이 구조를 살펴보며 CSD와 Parcel 자료를 모아 뒀습니다.
둘은 함께 사용될 수 있지만 역할은 다릅니다. Parcel은 배포할 소프트웨어와 메타데이터를 담고, CSD는 Cloudera Manager가 서비스를 어떻게 설정하고 실행할지 정의합니다.
Parcel의 파일 구성
Parcel 빌드 문서 에 따르면 소프트웨어 파일과 meta 디렉터리를 정해진 구조로 묶습니다. 최상위 디렉터리와 파일 이름에도 이름·버전 등의 규칙이 있습니다.
예를 들면 다음처럼 구성할 수 있습니다.
EXAMPLE-1.0.0/
bin/
lib/
meta/
parcel.json
permissions.json
alternatives.json
example_env.sh이 목록은 구조를 보여주는 예시이며 모든 파일이 모든 Parcel에서 필수라는 뜻은 아닙니다. 배포할 프로그램에 맞는 메타데이터를 준비해야 합니다.
Meta 파일의 역할
| 파일 | 확인할 내용 |
|---|---|
parcel.json | 이름·버전·제공 기능과 환경 스크립트 등 |
permissions.json | 파일 소유자와 권한 |
alternatives.json | alternatives로 연결할 실행 경로 등 |
| 환경 스크립트 | 프로그램을 찾기 위한 환경 변수 설정 |
당시 메모에는 Cloudera Manager가 지원하는 압축 형식도 함께 남겼습니다. gzip으로 묶더라도 배포 파일은 정해진 .parcel 이름을 사용합니다. 단순히 임의의 .tar.gz 파일을 올리는 것과는 다릅니다.
CSD의 서비스 정의
CSD는 프로그램의 서비스와 역할, 설정값, 제어 명령을 Cloudera Manager에 알려 주는 정의입니다. 서비스 descriptor는 JSON 형식이며 CSD JAR 안의 descriptor/service.sdl에 배치합니다. 세부 항목은 Service Descriptor Language 문서 에서 확인할 수 있습니다.
패키지가 배포됐다고 서비스 시작과 업그레이드까지 자동으로 맞춰지는 것은 아닙니다. 실제 실행 파일과 설정 위치, 시작·정지 스크립트가 서비스 정의와 연결돼야 합니다. 무중단 업그레이드 가능 여부도 프로그램의 동작과 서비스 구성에 따라 따로 확인해야 합니다.