Zeppelin 사용

Prev Next

VPC 환경에서 이용 가능합니다.

네이버 클라우드 플랫폼 Cloud Hadoop에는 Zeppelin Notebook이 설치되어 있습니다.
이 가이드에서는 Zeppelin Notebook UI에 접속하는 방법과 간단한 예제 실행 방법을 설명합니다.
Zeppelin에 대한 자세한 내용은 Apache Zeppelin 공식 문서를 참고해 주십시오.

Cloud Hadoop 콘솔에서 [Application 별 보기] 를 통해 Zeppelin Notebook UI에 접속할 수 있습니다. 자세한 내용은 Application별 보기를 참조해 주십시오.

웹 브라우저를 실행한 후 주소란에 다음과 같이 입력해 접속해 주십시오. 클러스터에 할당된 도메인 주소를 사용합니다.

https://{도메인 주소}:9996
Plain text

Ambari Web UI를 통한 접속 방법은 다음과 같습니다.

  1. Ambari UI에 접속해 주십시오.
    • Ambari UI 접속에 대한 자세한 내용은 Ambari UI 가이드를 참고해 주십시오.
  2. Ambari UI 화면에서 Zeppelin Notebook > Quick Links > Zeppelin UI를 클릭해 주십시오.
  3. 브라우저에 로그인 페이지가 표시되면 클러스터 생성 시 설정한 관리자 계정 및 패스워드를 입력하여 로그인해 주십시오.
    • 접속에 성공하면 Zeppelin 페이지 상단 오른편 [login] 버튼 옆에 초록색 점이 표시됩니다.

Zeppelin Notebook을 생성하여 데이터를 입력하고 결과를 그래프로 확인할 수 있습니다.
이 가이드에서는 Zeppelin Notebook에서 기본적으로 제공하는 "Zeppelin Tutorial (Basic Features)" Notebook을 참고했습니다.

Notebook을 생성하는 방법은 다음과 같습니다.

  1. Zeppelin 상단의 [Notebook] > Create new note를 클릭해 주십시오.
    cloudhadoop-use-zeppelin1_ko

  2. 노트 이름 및 정보를 설정한 후 [Create Note] 버튼을 클릭해 주십시오.

    • Default Interpreter는 노트를 생성한 후에도 변경할 수 있습니다.
      cloudhadoop-use-zeppelin2_ko

다음은 bank.csv의 데이터를 bank 테이블에 로드하는 샘플 코드입니다.

%spark.spark
 import org.apache.commons.io.IOUtils
 import java.net.URL
 import java.nio.charset.Charset

 // Zeppelin creates and injects sc (SparkContext) and sqlContext (HiveContext or SqlContext)
 // So you don't need create them manually

 // load bank data
 val bankText = sc.parallelize(
     IOUtils.toString(
         new URL("https://s3.amazonaws.com/apache-zeppelin/tutorial/bank/bank.csv"),
         Charset.forName("utf8")).split("\n"))


 case class Bank(age: Integer, job: String, marital: String, education: String)

 val bank = bankText.map(s => s.split(",")).filter(s => s(0) != "age").map(
     s => Bank(s(0).toInt,
             s(1).replaceAll("\"", ""),
             s(2).replaceAll("\"", ""),
             s(3).replaceAll("\"", "")
         )

 ).toDF()
 bank.registerTempTable("bank")
Plain text

Zeppelin Notebook 코드 실행 및 결과를 확인하는 방법은 다음과 같습니다.

  1. [Shift] + [Enter] 키를 누르거나 cloudhadoop-zeppelin-run_ko을 클릭하여 코드를 실행해 주십시오.

    • FINISHED 상태와 Took 4 sec 문구로 코드가 정상적으로 수행된 것을 확인할 수 있습니다.
      cloudhadoop-use-zeppelin3
  2. 새 단락에 테이블의 데이터를 조회하는 Spark SQL 구문을 작성한 후, [Shift] + [Enter] 키를 누르거나 cloudhadoop-zeppelin-run_ko을 클릭하여 코드를 실행해 주십시오.

    • 조회 결과 화면이 표시됩니다. 그래프 버튼을 이용해 SQL 결과를 다양한 종류의 그래프로 확인할 수 있습니다.
    %spark.sql
    select age, count(1) value
    from bank
    where age < 30
    group by age
    order by age
    
    Plain text

    cloudhadoop-use-zeppelin4

Zeppelin Notebook은 클러스터 마스터 노드의 1번 서버에 저장됩니다. 따라서 클러스터 삭제 시 Notebook도 함께 삭제됩니다.
동일한 Notebook을 다른 클러스터에서 사용하기 위해서는 작업 수행 완료 후 Notebook을 내보내야 합니다.

Zeppelin Notebook 백업하는 방법은 다음과 같습니다.

  1. Notebook 화면 상단의 cloudhadoop-zeppelin-download_ko 버튼을 클릭해 주십시오.
  2. 로컬 PC에 파일명과 경로를 정한 후 저장해 주십시오.
    • 내보낸 파일은 JSON 형식으로 저장됩니다.
참고

Zeppelin Notebook 백업 시 Notebook 단위로 저장됩니다.

참고

zeppelin에서 jdbc interpreter를 설치하려면 엣지 서버에서 /etc/zeppelin/conf/interpreter-list 파일의 jdbc 버전 정보를 수정한 후 설치하십시오.

변경 전: jdbc org.apache.zeppelin:zeppelin-jdbc:0.11.0-SANPSHOT Jdbc interpreter
변경 후: jdbc org.apache.zeppelin:zeppelin-jdbc:0.10.1 Jdbc interpreter

자세한 사항은 메이븐에서 jdbc interpreter의 라이브러리 의존성(버전, 라이브러리 이름 등)을 확인하십시오.