코알못

[ Zeppelin] JDBC 인터프리터를 추가 해보자! 본문

BIG DATA

[ Zeppelin] JDBC 인터프리터를 추가 해보자!

코린이s 2022. 4. 18. 15:04
728x90

우선 처음에 AWS EMR 로 zeppelin 서비스 설치시 jdbc 인터프리터 그룹이 없기에 원하는 인터프리터를 추가할 수 없다.

그렇기에 필요한 인터 프리터 그룹을 설치하도록 한다.

우선 해당 zeppelin 서버에 접속한뒤 아래와 같이 설치 한다.

$ sudo /usr/lib/zeppelin/bin/install-interpreter.sh -n jdbc
Install jdbc(org.apache.zeppelin:zeppelin-jdbc:0.9.0) to /usr/lib/zeppelin/interpreter/jdbc ...
Interpreter jdbc installed under /usr/lib/zeppelin/interpreter/jdbc.

1. Restart Zeppelin
2. Create interpreter setting in 'Interpreter' menu on Zeppelin GUI
3. Then you can bind the interpreter on your note

그다음 zeppelin 을 재기동한다. 

$ sudo systemctl stop zeppelin
$ sudo systemctl start zeppelin

재기동 완료 후에 zeppelin 을 접속하여 인터프리터 관리 화면으로 이동 한다.

create 버튼을 누른다.

인터프리터 그룹을 보면 jdbc interpreter가 추가된 것을 확인 할 수 있다.

이제 접근하고자 하는 데이터베이스 정보를 넣는다.

아래 jdbc connector 의존성도 추가하여야 하는데 아래 저장소에서 원하는 버전으로 기재한다.

https://mvnrepository.com/artifact/mysql/mysql-connector-java

Save 버튼을 누르고 리스트를 확인하면 로딩바가 보이며 1분정도 대기한다.

로딩이 완료되면 아래와 같이 초록불이 표기되며 정상적으로 사용할 준비가 됐다는 것이다. (빨간불이면 문제가 있음을 의미)

이제 사용해보면 zeppelin 노트를 추가하여 테스트 해보면 아래와 같이 정상적으로 조회가 되는것을 볼 수 있다.

위 설정한 바와 같이 데이터베이스 별로 인터프리터 생성이 가능하며, 인터프리터별 권한 설정도 가능하다.

권한 설정 방법은 아래 게시글의 interpreter별 권한 설정 부분을 참고한다.

- https://co-de.tistory.com/96

 

[ Zeppelin] 계정별로 권한을 설정해보자!

Zeppelin 의 경우 Apache Shiro를 사용하여 인증, 권한 관리 등 보안 관련 부분을 관리한다. 아래 세가지 실습을 진행하도록 한다. 1. 노트별 실행, 읽기, 쓰기 권한 설정 2. URL 별 권한 설정 3. interpreter별

co-de.tistory.com

인터프리터에 사용자명으로 접근 권한을 줄수 있고, 사용자를 그룹에 넣어 그룹명으로 권한을 줄 수 있다.

사용자명으로 권한을 줄수 있으나 사용자가 많을시 한눈에 보이지 않아 관리가 어려울것으로 보여 사용자에게 권한을 부여하고 권한명으로 인터프리터 권한을 부여하면 관리하기 용이해보인다.

따라서 접근하고자 하는 사용자에게 권한 관련 전자 결제를 받고 해당 사용자에게 권한을 주어 접근 하도록 하는것이 좋을것 같다.

테스트한 결과는 아래 참고하면 된다.

1. oozie 인터프리터에 role1, admin 권한을 가진 사용자에게만 접근 허용 (만약 set permission 에 체크 안하면 모두 접근 허용)

2. 권한이 있는 사용자(user3)가 접근시 정상적으로 조회 가능

3. 권한이 없는 사용자(user2​)가 데이터 조회시 permission 오류 발생

728x90
Comments