제플린 노트북 자동 실행 스크립트 만들기

제플린 노트북을 사용하다보면 가끔 제플린 어플리케이션을 재시작해야 하는 경우가 있습니다. 이 때, view 또는 udf 등록을 위해 처음 실행시켜야 하는 노트북이 있다면 참 번거롭습니다. 하지만 Zeppelin Notebook API 사용한다면 이를 쉽게 자동화 할 수 있습니다.

Zeppelin Notebook API

제플린은 노트북 자동실행을 위한 REST API를 제공합니다. 하지만 제플린에 인증이 걸려있다면, 인증을 거쳐야만 API를 사용할 수 있습니다. 따라서, 먼저 curl로 세션 값을 받고 해당 노트북 아이디를 호출하시면 됩니다.

노트북 아이디는 해당 노트 URL의 가장 마지막 값 입니다. (ex 2AZPHY918) 아래의 스크립트는 아이디가 user, 패스워드가 1234인 경우를 예시로 들었습니다.

#!/bin/sh
sudo /usr/lib/zeppelin/bin/zeppelin-daemon.sh stop
sleep 3
sudo /usr/lib/zeppelin/bin/zeppelin-daemon.sh start

sleep 15

SESSION="`curl -i --data 'userName=user&password=1234)' -X POST http://zeppelin-url.com:8890/api/login | grep 'Set-Cookie: JSESSIONID=' | cut -d ':' -f2 |  tail -1 | cut -d ';' -f1`"
echo $SESSION
curl -i -b ${SESSION} -X POST http://zeppelin-url.com:8890/api/notebook/job/NOTEBOOK_ID

Notebook API를 활용하면 노트북 실행 뿐만 아니라, Cron이나 노트북 권한 설정도 자동화할 수 있습니다. 자세한 내용은 아래의 공식문서에서 확인하실 수 있습니다.

Reference