코알못

[ Zeppelin] 스케쥴링 기능을 이용해보자! 본문

BIG DATA

[ Zeppelin] 스케쥴링 기능을 이용해보자!

코린이s 2022. 3. 7. 15:30
728x90

zepplelin 에서는 cron 기능을 활성화시 노트별로 스케쥴링 기능을 제공한다.

우선 cron 기능은 default 로 false 되어 있기에 true로 변경하고 재기동하는 작업이 필요하다.

zepplien ui 에 접속한뒤 아래와 같이 configuration 클릭시 설정 정보가 나오며

관련 설정인 'zeppelin.notebook.cron.enable' 검색해보면 false 로 되어 있다.

설정 변경은 zeppelin 서버에 접속(EMR 의 경우 마스터 노드에 설치되어 있으므로 마스터 인스턴스에 접속)하여 설정파일 경로로 간다.

$ ssh -i key.pem hadoop@ip
$ cd /etc/zeppelin/conf

설정파일 'zeppelin-site.xml' 에 가서 수정 한다.

- zeppelin.notebook.cron.enable : cron 활성화 여부

- zeppelin.notebook.cron.folders : cron 적용할 폴더 (/ 로 설정시 전체 노트에 설정 적용, 만약 특정 노트에 적용을 원할시 ',' 로 구분하여 특정 노트에 설정 가능)

$ sudo vi zeppelin-site.xml
<property>
  <name>zeppelin.notebook.cron.enable</name>
  <value>true</value>
  <description>Notebook enable cron scheduler feature</description>
</property>
<property>
  <name>zeppelin.notebook.cron.folders</name>
  <value>/</value>
  <description>Notebook cron folders</description>
</property>
:wq!

주의할 점은 해당 설정에 <!-- GitHub configurations --> 로 주석 처리 되어 있으니 꼭 제거하여 저장한다.

$ sudo systemctl --type=service | grep 'zeppelin'
  zeppelin.service                       loaded active     running      Zeppelin
$ sudo systemctl stop zeppelin.service
$ sudo systemctl status zeppelin.service
● zeppelin.service - Zeppelin
   Loaded: loaded (/etc/systemd/system/zeppelin.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since 월 2022-03-07 05:46:24 UTC; 20s ago
 Main PID: 32582 (code=exited, status=143)
$ sudo systemctl start zeppelin.service
$ sudo systemctl status zeppelin.service
● zeppelin.service - Zeppelin
   Loaded: loaded (/etc/systemd/system/zeppelin.service; enabled; vendor preset: disabled)
   Active: active (running) since 월 2022-03-07 05:46:59 UTC; 6s ago

다시 zeppelin 설정 란에 가보면 정상적으로 변경 되어 있다.

 노트를 하나 생성하여 스파크 SQL 을 작성하고

노트 상단을 보면 cron 활성화 전에 없었던 시계아이콘이 생성된 것을 볼 수 있다.

선택하여 1분 마다 실행 되도록 하며 저장 버튼은 따로 없으며 자동으로 저장 된다.

cron 형식으로 스케쥴링 할 수 있어 일별, 월별, 주별, 특정 시간대 등 원하는 대로 자유롭게 설정 가능하다.

스파크 히스토리 서버 로그를 보면 1분 마다 실행 된것을 볼 수 있다. 

영구적으로 저장 되는건지 확인을 위해 브라우저를 닫고 몇분 뒤에 히스토리 서버 로그를 확인하면 정상적으로 스케쥴링 된 것을 확인할 수 있다. (영구적으로 저장됨)

끝!

728x90
Comments