1. 서론
이번 포스팅에서는 Apache Zeppelin 대해 알아 보도록하겠습니다.
2. Apache Zeppelin 이란?
Apache Zeppelin이란 Spark를 Web 기반 NoteBook으로 간편히 수행할 수 있게 제공하는 어플리케이션입니다.
ide를 통해 할 수도 있지만 Web 기반으로 어디서든 접근하여 간편히 Spark 로직을 생산할 때 많이 사용하는 도구입니다.
3. 설치 및 CDH와 연동
CDH ( = Cloudera's Distribution for Hadoop )에서 사용하는 CM (= Cloudera Manager)에서는 안타깝게도 Apache Zeppelin 설치를 제공하고 있지 않습니다.
HDP ( = Hortonworks Data Platform ) 에서 사용하는 Ambari 에서는 지원하고 있습니다.
Ambari에서 설치 법은 아래 URL에 나와있습니다.
https://docs.cloudera.com/HDPDocuments/HDP3/HDP-3.1.5/installing-zeppelin/content/installing_apache_zeppelin.html
때문에, 수동으로 설치하여 CDH와 연동하여 사용하여야 합니다.
1) 다운로드
저는 CDH 중 호스트 한개를 선택하여 설치를 진행하였습니다.
먼저 아래와 같이 zeppelin 을 다운받습니다.
( 현재 포스팅 시점에서는 zeppelin-0.9.0-preview1 가 최신 버전이지만 많이 사용하는 0.8.1 버전으로 진행하도록 하겠습니다. )
wget http://apache.mirror.cdnetworks.com/zeppelin/zeppelin-0.8.1/zeppelin-0.8.1-bin-all.tgz
다운받은 압축파일을 해제합니다.
tar -zxvf zeppelin-0.8.1-bin-all.tgz
Zeppelin의 경우 기본경로를 /opt/zeppelin으로 잡기 때문에 압축해제한 폴더를 해당 경로로 옮겨줍니다.
sudo mkdir -p /opt/zeppelin
sudo mv ./zeppelin-0.8.1-bin-all /opt/zeppelin
2) 설정 파일 수정
먼저 /opt/zeppelin/zeppelin-0.8.1-bin-all/conf 디렉터리로 이동합니다.
후에, 아래 3개 파일을 모두 cp 명령어를 통해 postfix .template를 제거한 파일을 만들어 줍니다.
cp shiro.ini.template shiro.ini
cp zeppelin-env.sh.template zeppelin-env.sh
cp zeppelin-env.cmd.template zeppelin-env.cmd
3개 파일을 모두 수정할건 아니지만 사용자가 필요시에 수정할 파일이기 때문에 미리 cp를 통해 만들어 주었습니다.
이제 zeppelin-env.sh 파일을 열어 아래와 같이 설정 해주시면 됩니다.
설정 값을 CDH의 parcels를 통해 설치한 경로로 잡아줘야 합니다.
제플린을 통해 스파크 코드가 CDH 노드들로 수행되기 위함입니다.
export JAVA_HOME="/usr/java/jdk1.8.0_181-cloudera"
export SPARK_HOME="/opt/cloudera/parcels/CDH/lib/spark"
export HADOOP_CONF_DIR="/etc/hadooc/conf"
기본 설정은 이걸로 끝입니다ㅎㅎㅎ
3) 실행
이제 bin 디렉터리인 /opt/zeppelin/zeppelin-0.8.1-bin-all/bin
으로 이동 후 zeppelin-daemon.sh start 명령어만 수행해주면 됩니다.
cd /opt/zeppelin/zeppelin-0.8.1-bin-all/bin
./zeppelin-daemon.sh start
4. 사용 예제
이제 위까지 진행하셨다면 기본 포트인 8080으로 접속하시면 아래와 같은 화면을 볼 수 있습니다.
1) 로그인하기
로그인은 앞에서 봤던 shiro.ini 파일에 각 인증, 권한을 허용하는 유저를 등록할 수 있습니다.
앞에서는 딱히 건들지 않았기 때문에 아래와 같은 기본 유저를 사용하시면 됩니다.
저는 첫번째인 user1 에 password2로 로그인하였습니다.
2) 노트 생성하기
로그인을 했으니 아래 사진의 create new note 를 클릭하여 추가합니다.
저는 feeder라는 디렉터리에 compare를 추가했습니다.
3) pyspark 코드 실행
생성한 노트에 들어가면 아래와 같은 화면이 나옵니다.
pyspark를 사용하기 위해 %spark.pyspark 를 맨 상단에 추가해주시면 됩니다.
아래는 간단하게 rdd를 만들어서 출력해보는 예제입니다.
5. 마무리
이번에는 Apache Zeppelin 에 대해서 설치와 간단한 사용 예제를 포스팅하였습니다.
다음에는 CDH와 스파크 클라이언트 연동에 대해 포스팅하겠습니다.
'BigData > Spark' 카테고리의 다른 글
(8) CDH와 스파크 클라이언트 연동 (0) | 2020.04.21 |
---|---|
(6) 스트럭처 스트리밍 (0) | 2020.03.31 |
(5) 스파크 스트리밍 (0) | 2020.03.19 |
(4) 스파크 SQL (0) | 2020.03.17 |
(3) 스파크 설정 (0) | 2020.03.13 |