한동안 spark 개발 환경을 zeppelin을 이용해서 구성하려고 이런저런 삽질들을 많이 했었다. 결국 Windows 환경 지원도 제대로 안 되고(링크 참고), 업뎃도 요즘 안 되는듯하여 jupyter lab으로 갈아타게 되었다. 그래도 혹시나 zeppelin을 이용한 spark 분석 환경을 구성하는 분들에게 도움이 되고자 정리해보았다. 참고로 버전 충돌도 엄청 심해서 Zeppelin 0.8.0 version에서 Spark 2.2.3 version, Java 8 version의 조합으로만 정상적으로 동작한다. 이 사실을 알기까지 원인도 모를 에러로 며칠이나 고생을 했는지 모른다.😇
설치 방법은 Zeppelin Install Guide 공식문서를 참고하였다.
Install in Mac
- Zeppelin 다운로드 페이지에서 Binary package with all interpreters 버전으로 다운로드(tar 파일)
- tar 압축 풀기
$ tar -zxvf zeppelin-0.8.0-bin-all.tar
- Zeppelin daemon 실행
$ cd zeppelin-0.8.0-bin-all
$ cd bin
$ ./zeppelin-daemon.sh start
- 브라우저에서 http://localhost:8080/#/ 접속 (default port: 8080)
- 완료! port 설정 관련 문제로 에러가 난다면 아래에 작성된 설정 변경(conf/zeppelin-site.xml 수정)을 참고하여 port 변경
Install in Windows
Mac에서의 설치와 같은 방법이다.
- Zeppelin 다운로드 페이지에서 Binary package with all interpreters 버전으로 다운로드(tar 파일)
- tar 압축 풀기
- Zeppelin daemon 실행
$ cd zeppelin-0.8.0-bin-all/bin
$ zeppelin.cmd
- 브라우저에서 http://localhost:8080/#/ 접속 (default port: 8080)
Configuration
위까지 따라하면 default 설정으로만 실행된다. path 설정, port 설정은 아래 파일을 수정해야 한다.
path 설정
in Mac, Linux
- conf/ 디렉토리에서
zeppelin-env.sh.template
파일명을zeppelin-env.sh
로 변경 zeppelin-env.sh
파일의 내용을 아래와 같이 수정
# export JAVA_HOME
...
# export SPARK_HOME
주석 처리(#
)를 지우고 본인 PC의 JAVA_HOME
, SPARK_HOME
경로를 작성한다.
export JAVA_HOME=${JAVA_HOME}
...
export SPARK_HOME=${SPARK_HOME}
in Windows
- conf/ 디렉토리에서
zeppelin-env.cmd.template
파일명을zeppelin-env.cmd
로 변경 zeppelin-env.cmd
파일의 내용을 아래와 같이 수정
REM set JAVA_HOME
...
REM set SPARK_HOME
주석 처리(REM
)를 지우고 본인 PC의 JAVA_HOME
, SPARK_HOME
경로를 작성한다. 참고로 이때 같은 라인에 있는 불필요한 주석도 모두 지워야 한다. (interpreter.cmd
실행시에 그 주석까지 함께 읽으면서 에러 발생)
set JAVA_HOME=${JAVA_HOME}
...
set SPARK_HOME=${SPARK_HOME}
ip, port 등 설정
Mac, Linux, Windows 모두 동일
- conf/ 디렉토리에서
zeppelin-site.xml.template
파일명을zeppelin-site.xml
로 변경 - 필요한 설정 변경
<property>
<name>zeppelin.server.addr</name>
<value>127.0.0.1</value> <!-- server ip -->
<description>Server address</description>
</property>
<property>
<name>zeppelin.server.port</name>
<value>8080</value> <!-- server port: default 8080 -->
<description>Server port.</description>
</property>
댓글