Skip to Content
Data EngineeringCloudera CSD와 Parcel 구성 살펴보기
📊 Data Engineering2017년 3월 20일

Cloudera CSD와 Parcel 구성 살펴보기

#cloudera#csd#parcels#data-engineering#flamingo

Cloudera Manager에서 별도 프로그램을 관리하려면 실행 파일을 전달하는 것 외에 서비스 설정과 실행 방법도 알려 줘야 합니다. 당시 이 구조를 살펴보며 CSD와 Parcel 자료를 모아 뒀습니다.

둘은 함께 사용될 수 있지만 역할은 다릅니다. Parcel은 배포할 소프트웨어와 메타데이터를 담고, CSD는 Cloudera Manager가 서비스를 어떻게 설정하고 실행할지 정의합니다.

Parcel의 파일 구성

Parcel 빌드 문서 에 따르면 소프트웨어 파일과 meta 디렉터리를 정해진 구조로 묶습니다. 최상위 디렉터리와 파일 이름에도 이름·버전 등의 규칙이 있습니다.

예를 들면 다음처럼 구성할 수 있습니다.

text
EXAMPLE-1.0.0/ bin/ lib/ meta/ parcel.json permissions.json alternatives.json example_env.sh

이 목록은 구조를 보여주는 예시이며 모든 파일이 모든 Parcel에서 필수라는 뜻은 아닙니다. 배포할 프로그램에 맞는 메타데이터를 준비해야 합니다.

Meta 파일의 역할

파일확인할 내용
parcel.json이름·버전·제공 기능과 환경 스크립트 등
permissions.json파일 소유자와 권한
alternatives.jsonalternatives로 연결할 실행 경로 등
환경 스크립트프로그램을 찾기 위한 환경 변수 설정

당시 메모에는 Cloudera Manager가 지원하는 압축 형식도 함께 남겼습니다. gzip으로 묶더라도 배포 파일은 정해진 .parcel 이름을 사용합니다. 단순히 임의의 .tar.gz 파일을 올리는 것과는 다릅니다.

CSD의 서비스 정의

CSD는 프로그램의 서비스와 역할, 설정값, 제어 명령을 Cloudera Manager에 알려 주는 정의입니다. 서비스 descriptor는 JSON 형식이며 CSD JAR 안의 descriptor/service.sdl에 배치합니다. 세부 항목은 Service Descriptor Language 문서 에서 확인할 수 있습니다.

패키지가 배포됐다고 서비스 시작과 업그레이드까지 자동으로 맞춰지는 것은 아닙니다. 실제 실행 파일과 설정 위치, 시작·정지 스크립트가 서비스 정의와 연결돼야 합니다. 무중단 업그레이드 가능 여부도 프로그램의 동작과 서비스 구성에 따라 따로 확인해야 합니다.

참고 자료

Last updated on