본문 바로가기
etc/Spark

Mac, Windows에서 Zeppelin 설치 및 설정

by 돈코츠라멘 2019. 8. 30.

한동안 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

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>

댓글