Zeppelin原理簡介

2022-07-08 03:39:13 字數 2551 閱讀 5270

zeppelin是乙個基於web的notebook,提供互動資料分析和視覺化。後台支援接入多種資料處理引擎,如spark,hive等。支援多種語言: scala(apache spark)、python(apache spark)、sparksql、 hive、 markdown、shell等。本文主要介紹zeppelin中interpreter和sparkinterpreter的實現原理。

安裝與使用

參考原理簡介

interpreter

zeppelin中最核心的概念是interpreter,interpreter是乙個外掛程式允許使用者使用乙個指定的語言或資料處理器。每乙個interpreter都屬於換乙個interpretergroup,同乙個interpretergroup的interpreters可以相互引用,例如sparksqlinterpreter 可以引用 sparkinterpreter 以獲取 sparkcontext,因為他們屬於同乙個interpretergroup。當前已經實現的interpreter有spark直譯器,python直譯器,sparksql直譯器,jdbc,markdown和shell等。下圖是zeppelin官網中介紹interpreter的原理圖。

interpreter介面中最重要的方法是open,close,interpert三個方法,另外還有cancel,gerprogress,completion等方法。

open 是初始化部分,只會呼叫一次。

close 是關閉釋放資源的介面,只會呼叫一次。

interpret 會執行一段**並返回結果,同步執行方式。

cancel可選的介面,用於結束interpret方法

getpregress 方法獲取interpret的百分比進度

completion 基於游標位置獲取結束列表,實現這個介面可以實現自動結束

sparkinterpreteropen方法中,會初始化sparkcontext,sqlcontext,zeppelincontext;當前支援的模式有:

• local[*] in local mode

• spark://master:7077 in standalone cluster

• yarn-client in yarn client mode

• mesos://host:5050 in mesos cluster

其中yarn集群只支援client模式。

if

(isyarnmode())

interpret方法中會執行一行**(以\n分割),其實會呼叫spark 的sparkiloop一行一行的執行(類似於spark shell的實現),這裡的一行是邏輯行,如果下一行**中以「.」開頭(非「..」,「./」),也會和本行一起執行。關鍵**如下:

scala.tools.nsc.interpreter.results.result res = null

;try

catch

(exception e)

r = getresultcode(res);

sparkinterpret的關鍵方法:

close 方法會停止sparkcontext

cancel 方法直接呼叫sparkcontext的cancel方法。sc.canceljobgroup(getjobgroup(context)

getprogress 通過sparkcontext獲取所有stage的總的task和已經結束的task,結束的tasks除以總的task得到的比例就是進度。

問題1,是否可以存在多個sparkcontext?

interpreter支援'shared', 'scoped', 'isolated'三種選項,在scopde模式下,spark interpreter為每個notebook建立編譯器但只有乙個sparkcontext;isolated模式下會為每個notebook建立乙個單獨的sparkcontext。

問題2,isolated模式下,多個sparkcontext是否在同乙個程序中?

乙個服務端啟動多個spark interpreter後,會啟動多個sparkcontext。不過可以用另外乙個jvm啟動spark interpreter。

zeppelin優缺點小結

優點1.提供restful和websocket兩種介面。

2.使用spark直譯器,使用者按照spark提供的介面程式設計即可,使用者可以自己操作sparkcontext,不過使用者3.不能自己去stop sparkcontext;sparkcontext可以常駐。

4.包含更多的直譯器,擴充套件性也很好,可以方便增加自己的直譯器。

5.提供了多個資料視覺化模組,資料展示方便。

缺點1.沒有提供jar包的方式執行spark任務。

2.只有同步的方式執行,客戶端可能需要等待較長時間。

Zeppelin原理簡介

zeppelin是乙個基於web的notebook,提供互動資料分析和視覺化。後台支援接入多種資料處理引擎,如spark,hive等。支援多種語言 scala apache spark python apache spark sparksql hive markdown shell等。本文主要介紹z...

zeppelin支援matplotlib配置

我的環境 python 2.7.10,zepplin 0.61 1.需要python支援tkinter.這需要重新編譯安裝python 先查詢系統中tk的版本 root n2 rpm qa grep tk tk devel 8.5.7 5.el6.x86 64 tkinter 2.6.6 66.el...

Zeppelin使用說明

在zeppelin中以筆記本 notebook 的形式組織和管理互動式資料探索任務,乙個筆記本 note 可以包括多個段 paragraph 段是進行資料分析的最小單位,即在段中可以完成資料分析 的編寫以及結果的視覺化檢視。下圖所示筆記本為 應用嚮導 圖中紅框部分為段。在段內,包括段標題 段 編輯區...