Zeppelin原理简介

Zeppelin原理简介sparkZeppelin原理

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

    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的原理图。

Zeppelin原理简介

 

    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.只有同步的方式运行,客户端可能需要等待较长时间。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167989.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 性格内向,不爱说话的人,是如何一步步成为领导的

    性格内向,不爱说话的人,是如何一步步成为领导的

    2022年2月14日
    312
  • 【Spring】代理模式:静态代理

    【Spring】代理模式:静态代理为什么要学代理模式?因为这就是SpringAOP的底层!【面试时,SpringAOP和SpringMVC一定会问】代理模式的分类:静态代理 动态代理静态代理角色分析:抽象角色:一般会使用接口或抽象类来解决 真是角色:被代理的角色 代理角色:代理真实角色,代理真实角色后,我们一般会做一些附属操作 客户:访问代理对象的人!代码步骤:接口(Rent.java)packagecom.company.org;publicinterfaceRent{pu

    2022年10月17日
    4
  • 2012年计算机工作总结,计算机教师工作总结2011-2012

    2012年计算机工作总结,计算机教师工作总结2011-2012计算机教师工作总结2011-20122010-2011第一学期计算机教学工作总结郑龙勤本学期,我任教24,25,26,27班的计算机应用基础教学,同时兼任学校的中职资助、机房维护等工作。在各位领导和老师的热心支持和帮助下,我认真做好教学工作,积极完成学校布置的各项任务。下面我把2010-2011年第一学期的工作做简要的汇报。一、学校制度执行情况平时积极参加全校教职工会议,认真学习学校下达的文件,关…

    2022年5月12日
    36
  • java开发常用工具

    java开发常用工具

    2021年7月10日
    86
  • 基于pytorch卷积人脸表情识别–毕业设计「建议收藏」

    基于卷积神经网络的人脸表情识别前言毕业设计内容介绍卷积神经网络的设计卷积网络的模型卷积池化过程详细说明第一层卷积池化过程第二层卷积池化过程第三层卷积池化过程全连接层过程模型的训练过程卷积与池化原理模型如何训练模型的评估指标训练结果分析通过训练曲线分析通过混淆矩阵分析效果通过摄像头识别表情设计流程效果演示部分代码展示总结前言这篇文章记录一下我本科毕业设计的内容。我的课题是人脸表情识别,本来最开始按照历届学长的传统是采用MATLAB用传统的机器学习方法来实现分类的。但是鉴于我以前接触过一点点深度学习的内容,

    2022年4月11日
    162
  • 格兰杰因果关系检验命令_超声波传感器应用实例及原理

    格兰杰因果关系检验命令_超声波传感器应用实例及原理诺贝尔经济学奖获得者,计量经济学大师克莱夫·格兰杰(CliveGranger)从预测的角度给出了因果关系的一种描述性定义,这就是我们现在所熟知的Granger因果关系。格兰杰因果关系检验是计量经济方法中常用的一种检验方法

    2025年8月14日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号