日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Zeppelin原理简介

發布時間:2023/12/15 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 Zeppelin原理简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Zeppelin是一個基于Web的notebook,提供交互數據分析和可視化。后臺支持接入多種數據處理引擎,如spark,hive等。支持多種語言: Scala(Apache Spark)、Python(Apache Spark)、SparkSQL、 Hive、 Markdown、Shell等。本文主要介紹Zeppelin中Interpreter和SparkInterpreter的實現原理。

轉載請注明

http://www.cnblogs.com/shenh062326/p/6195064.html

安裝與使用
參考http://blog.csdn.net/jasonding1354/article/details/46822391

原理簡介

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 基于游標位置獲取結束列表,實現這個接口可以實現自動結束

SparkInterpreter

Open方法中,會初始化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()) {
  conf.set("master", "yarn");
  conf.set("spark.submit.deployMode", "client");
}

Interpret方法中會執行一行代碼(以\n分割),其實會調用spark 的SparkILoop一行一行的執行(類似于spark shell的實現),這里的一行是邏輯行,如果下一行代碼中以“.”開頭(非“..”,“./”),也會和本行一起執行。關鍵代碼如下:

scala.tools.nsc.interpreter.Results.Result res = null;
try {
  res = interpret(incomplete + s);
} catch (Exception e) {
  sc.clearJobGroup();
  out.setInterpreterOutput(null);
  logger.info("Interpreter exception", e);
  return new InterpreterResult(Code.ERROR, InterpreterUtils.getMostRelevantMessage(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原理简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。