Zeppelin 사용하기
Cloud Hadoop 클러스터 생성 시 클러스터 Type이 Spark인 클러스터에만 Zeppelin Notebook이 설치되어 있습니다. 자세한 내용은 Apache Zeppelin 페이지를 참고합니다.
목차
Zeppelin Notebook UI 접속
Zeppelin Notebook UI는 콘솔의 [Application별 보기]탭 내에서 Zeppelin Notebook 접속 버튼을 이용합니다.
직접 접속 방법
웹브라우저의 주소 입력란에 다음과 같이 입력합니다. 클러스터에 할당된 Public domain 주소를 사용합니다.
http://Public domain:9996
Ambari 웹 UI를 통한 접속 방법
- 접속에 성공하면, Zeppelin 페이지 상단 오른편 login 버튼 옆에 초록색 점이 표시됩니다.
- 로그인 계정은, 클러스터를 생성할때 콘솔에서 설정한 어드민 계정과 동일합니다.
Zeppelin Notebook 시작
Zeppelin Notebook을 생성하여, 데이터를 입력하고 결과를 그래프로 확인할 수 있습니다.
본 가이드의 내용은 Zeppelin Notebook에 기본적으로 제공되는 "Zeppelin Tutorial (Basic Features)" Notebook을 참고하였습니다.
새 Notebook을 만듭니다.
① Zeppelin 상단의 Notebook을 클릭합니다.
② Create new note를 클릭합니다.
③ 노트 이름을 입력하고 노트를 생성합니다.
Default Interpreter는 노트 생성 후에도 변경할 수 있습니다.
테이블에 데이터를 로드하는 코드를 Notebook에 작성합니다.
다음은 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, balance: Integer) 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("\"", ""), s(5).replaceAll("\"", "").toInt ) ).toDF() bank.registerTempTable("bank")
Shift + Enter 키를 누르거나 재생을 클릭하여 코드를 실행합니다.
FINISHED 상태와 Took 30 sec 문구로 코드가 정상적으로 수행된 것을 확인할 수 있습니다.
새 단락에 테이블의 데이터를 조회하는 Spark SQL 구문을 작성합니다.
%spark.sql select age, count(1) value from bank where age < 30 group by age order by age
Shift + Enter 키를 누르거나 재생을 클릭하여 코드를 실행합니다. 그래프 버튼을 클릭하여 SQL 결과를 그래프로 볼 수 있습니다.
Zeppelin Notebook 백업
Zeppelin Notebook은 클러스터 마스터 노드의 1번 서버에 저장됩니다. 따라서 클러스터를 삭제하면 Notebook도 삭제됩니다.
동일한 Notebook을 다른 클러스터에서 사용하기 위해서는 작업 수행을 완료한 후 Notebook을 내보내야 합니다. Notebook 백업은 Notebook 단위로 가능합니다. 내보내기 아이콘을 클릭하여 Notebook을 로컬 PC에 백업합니다. 내보낸 파일은 JSON 형식으로 저장됩니다.