기존 포스팅에서 Zeppelin 0.8.1 버전을 사용하기 위한 방법을 소개했다.
HDP Sandbox를 이용한 방법과 Zeppelin Docker를 이용한 방법을 다뤘다.
그러나 0.10.1 버전의 경우 기존 방법으로 사용할 수 없어서 새롭게 정리한다.
오류 증상
Zeppelin Docker를 이용한 방법으로 0.8.1 버전 대신 0.10.1 버전을 사용하면 아래와 같은 오류가 발생한다.
Zeppelin 0.8.1 버전을 Docker로 사용하는 방법은 다음 포스팅을 참고한다.
위와 같은 오류가 발생하는 원인은 Zeppelin 구성에 차이가 발생했기 때문이다.
기존 버전의 경우 Zeppelin에서 자체적으로 Spark 엔진을 내장하고 있었다.
그러나 최신 버전은 더 이상 포함하지 않기 때문에 위와 같이 Spark과 Scala 정보를 찾지 못하는 것이다.
따라서 Spark 실행 환경을 별도로 설정해야 한다.
해결 방법
다행히 Spark은 Stand-alone 모드로 설정해도 되기 때문에 생각보다 복잡하지 않다.
자세한 설정 방법은 아래 문서를 참고한다.
직접 Spark 빌드 파일을 다운로드해서 공유 볼륨으로 설정해야 한다.
Spark 3.1.3 버전의 다운로드는 아래 URL을 참고한다.
다운로드 한 파일을 압축 해제한다.
압축 해제 된 폴더를 Zeppelin 경로로 사용할 폴더의 하위 경로로 복사한다.
그리고 아래와 같이 공유 볼륨으로 걸어주고, SPARK_HOME 환경 변수로 /opt/spark 경로를 적용한다.
docker run -d -p 9997:8080 -p 9998:4040 --rm \
-v /mnt/d/docker/zeppelin/zeppelin_logs:/logs \
-v /mnt/d/docker/zeppelin/zeppelin_notebook:/zeppelin/notebook \
-v /mnt/d/docker/zeppelin/zeppelin_data:/data \
-v /mnt/d/docker/zeppelin/spark-3.1.3-bin-hadoop3.2:/opt/spark \
-e SPARK_HOME=/opt/spark \
-e ZEPPELIN_LOG_DIR=/logs \
--name zeppelin 사설저장소주소:포트/apache/zeppelin:0.10.1
docker-compose를 사용하려는 경우 docker-compose.yml 파일을 다음과 같이 작성한다.
version: '3'
services:
zeppelin:
# 저장소:주소 생략하면 dockerhub 사용
# 버전 생략하면 lastest 사용
image: 사설저장소주소:포트/apache/zeppelin:0.10.1
container_name: zeppelin # 필요한 경우 수정
environment:
SPARK_HOME: /opt/spark
ZEPPELIN_LOG_DIR: /logs
restart: always
shm_size: '1gb' # default는 64MB
ports:
- "9997:8080" # Zeppelin 웹 포트
- "9998:4040" # Spark Job History Server 포트 (확인 필요)
volumes:
- /mnt/d/docker/zeppelin/zeppelin_logs:/logs \
- /mnt/d/docker/zeppelin/zeppelin_notebook:/zeppelin/notebook \
- /mnt/d/docker/zeppelin/zeppelin_data:/data \
- /mnt/d/docker/zeppelin/spark-3.1.3-bin-hadoop3.2:/opt/spark
동작 확인
Zeppelin에 접속해서 Spark 인터프리터 설정에 보면 /opt/spark 경로로 지정된 것을 확인할 수 있다.
실제로 Spark 관련 코드를 실행해보면 인터프리터가 정상 동작하는 것을 확인할 수 있다.
Zeppelin에서 데이터를 탐색하는 방법은 아래 포스팅을 참고한다.
'::: 데이터 분석 :::' 카테고리의 다른 글
[Ambari 2] CentOS 7 가상 환경 생성 (0) | 2023.03.06 |
---|---|
[Ambari 1] Apache Ambari 소개 (2) | 2023.03.03 |
Zeppelin에서 데이터 탐색하기 (2) | 2021.10.25 |
Zeppelin 설정하고 노트북 생성하기 (0) | 2021.10.21 |
HDP Sandbox에서 Superset 사용하기 (0) | 2021.10.18 |