• 99zeppelin使用和一些预研


    概述

    REPL

    REPL全称Read Evaluate Print Loop,交互式解释器环境,通过交互式界面接收用户输入,交互式解释器读取输入内容并对它求值,返回结果,并重复此过程

    Jupyter Notebook

    Jupyter Notebook(早期叫IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。

    Jupyter Notebook 的是一个Web应用程序,便于创建和共享程序文档,支持实时代码、数学方程、可视化和Markdown语法,常用在数据清理转换、数值模拟、统计建模、机器学习等业务场景。

    Notebook的概念来源于Jupyter

    Apache Zeppelin

    官网描述

    Zeppelin是支持数据驱动、交互式数据分析、协作式文档等特性的基于Web的交互式应用开发引擎,应用以Notebook形式表示,支持Scala、Python、SQL、Markdown、shell等多种语言

    设计理念

    通过不同的解释器支持多种语言的REPL,并对返回结果进行可视化展示

    关键字

    可视化交互式数据分析工具,交互式数据科学

    地址

    官网:    http://zeppelin.apache.org/
    Github:  https://github.com/apache/zeppelin  (2015年7月开始提交)

    支持哪些语言

    支持Python、Shell、Scala、R、Markdown等语言的REPL

    支持使用JDBC方式对PostgreSQL、Mysql、Mariadb等常见数据库的CRUD操作

    支持Hive、Cassandra、HDFS、Spark、Hbase、Kylin、Elasticsearch、Neo4j等大数据生态组件的REPL

    支持的主要功能

    可视化交互式数据分析

    用户通过可视化界面,交互式地输入指令、代码提交给Zeppelin编译执行

    Notebook管理

    用户通过Web页面轻松地实现Notebook应用的增加、修改、运行和删除,支持应用的快速导入导出。

    数据可视化

    指令、代码提交后Zeppelin返回结果给用户,如果是结构化的数据,Zeppelin提供可视化机制,通过各类图表展示数据

    解释器配置

    用户可以配置系统内置的Spark、JDBC、Elasticsearch等解释器,支持按组管理解释器、为一个Notebook应用绑定多个解释器

    运行任务管理

    用户将Notebook应用提交给Zeppelin运行,也可以停止正在运行的任务。

    用户认证

    提供完善的用户权限认证机制,用户可以管理自己的Notebook

    Notebook应用一键分享

    调试完毕的Notebook应用可以提供统一访问的HTTP地址给外部应用访问。

    安装部署

    下载

    官网下载地址:http://zeppelin.apache.org/download.html

    zeppelin-0.8.2-bin-all.tgz

    这里下载的是0.8.2,952M(0.9的1.4G)

    分all interpreter和spark interpreter两种,选的前者

    部署

    1、放到服务器上解压:

    tar -zxvf zeppelin-0.8.2-bin-all.tgz

    2、进入zeppelin-0.8.2-bin-all/conf目录修改模板名字

    mv zeppelin-env.cmd.template zeppelin-env.cmd

    mv zeppelin-env.sh.template zeppelin-env.sh

    mv zeppelin-site.xml.template zeppelin-site.xml

    mv shiro.ini.template shiro.ini

    3、修改zeppelin-site.xml

    vim zeppelin-site.xml

    <property>

      <name>zeppelin.server.addr</name>

      <value>h1</value>     默认127.0.0.1改为机器hostname

      <description>Server binding address</description>

    </property>

    <property>

      <name>zeppelin.server.port</name>

      <value>8777</value>    默认8080,改为未占用的一个

      <description>Server port.</description>

    </property>

    启动

    进入bin目录

    bin/zeppelin-daemon.sh start(stop,restart都有)

    访问  http://10.192.77.150:8777/#/

    vim shiro.ini 增加用户名密码,重启后登陆访问

     

    用户认证开启:

    zeppelin-site.xml文件,true改为false

    <property>

      <name>zeppelin.anonymous.allowed</name>

      <value>false</value>

      <description>Anonymous user allowed by default</description>

    </property>

    shiro.ini文件:

    [users]

    admin = admin, admin

    user1 = password2, role1, role2

    user2 = password3, role3

    user3 = password4, role2

    可能出现的问题:进程已经启动,端口也正常,但是无法访问web,可能是防火墙未关闭:

    执行:systemctl stop firewalld

    setenforce 0

    核心模块

    模块

    主要职责

    实现语言

    zeppelin-server

    整个系统入口,提供服务器功能、权限认证以及用户校验等功能

    Java

    zeppelin-zengine

    实现Zeppelin中Notebook的持久化和检索功能

    Java

    zeppelin-interpreter

    执行解释器

    java

    zeppelin-web

    业务脚本语言编写、数据分析界面、数据可视化与结果导出

    AngularJS

    zeppelin-display

    让前端的AngularJS元素与后台数据进行绑定,进行数据交互

    Scala

    zeppelin-distribution

    用于存放编译后的二进制安装包

    zeppelin-examples

    示例代码,用于测试

    Zeppelin-server模块

    整个系统入口,提供服务器功能、权限认证以及用户校验等功能

    Zeppelin-zengine

    Paragraph(extends Job)

    代码执行的最小单位,负责获取代码文本,执行过程控制及返回结果获取

    每一行是一个paragraph

    Note

    由paragraph组成,权限控制、共享和持久化的最小单位。

    Notebook

    Note的manager类,负责Note的CURD,复制、导入导出;Note和相关Interpreter配

    置和运行时映射关系的维护。

    NotebookServer

    主要是将其他类封装,提供WebSocket等通信服务。

    NotebookRepo

    持久化层顶层接口,规定了持久化层的基本操作。

    AzureNotebookRepo

    数据存入Azure云的实现。

    S3NotebookRepo

    数据存入Amazon S3文件系统的实现。

    VFSNotebookRepo

    数据存入文件系统的实现

    GitNotebookRepo

    使用Git对Note进行版本管理的实现

    NotebookRepoSync

    使note在本地系统与远程系统之间同步的实现类。

    ZeppelinHubRepo

    存入ZeppelinHub的实现类。

    InterpreterSetting

    维护interpreter相关元信息,维护note与interpreterGroup的关系

    InterpreterFactory

    负责创建interpreter实例,interpreter配置文件的加载与持久化,interpreterSetting的管理。

    Zeppelin-interpreter模块

    Interpreter解释器

    Interpreter是一个抽象类,规定了所有解释器必须实现的功能。所有解释器都要继承这个抽象类,通过不同的具体实现,来完成不同语言的解释执行。

    可以理解为一个接口,规定所有解释器必须实现的功能,当前已经实现的Interpreter有spark解释器,python解释器,SparkSQL解释器,JDBC,Markdown和shell等

    InterpreterGroup

    一组Interpreter,用于启动和停止解释器JVM的最小单元。

     

    包含的重要方法:

    Open 是初始化部分,只会调用一次。

    Close 是关闭释放资源的接口,只会调用一次。

    Interpret 会运行一段代码并返回结果,同步执行方式。

    Cancel可选的接口,用于结束interpret方法

    getPregress 方法获取interpret的百分比进度

    completion 基于游标位置获取结束列表,实现这个接口可以实现自动结束

    Zeppelin-web模块

    业务脚本语言编写、数据分析界面、数据可视化与结果导出,与用户直接交互的模块

    操作使用

    首页

     

    说明:

    6、全局Notebook管理菜单

    在Zeppelin的任意界面均可快速使用此菜单,可快速查看、切换、创建Notebook

    7、运行任务管理
    查看所有运行的任务,包括运行完成、正则运行、失败、已取消等状态。

    10、Notebook仓库管理
    配置Notebook应用对应的文件在系统中的物理位置,默认是Zeppelin安装目录下的notebook目录。

    12、仅查看系统配置项
    查看zepplin-site.xml中配置的属性,不能修改。

    Notebook视图界面

     

    说明:

    7、设置为用户独有
    Notebook私有化后其他用户不能访问。

    12、代码解释器绑定
    为Notebook应用绑定代码解释器,默认绑定所有可用的解释器。

    14、布局选项
    支持三种布局,默认(default)为开发者视图,显示所有菜单、编辑和输出区域;simple为简单视图,不显示主要菜单;report为汇报视图,只显示输出结果。

    19、配置:更丰富的功能
    支持控制Paragraph宽度、字体大小、上下移动、显示标题(show title)、显示行号、删除等。

     

    解释器管理

     

    • 1 解释器筛选
      根据名称筛选解释器。
    • 2 解释器属性列表
      查看解释器支持的属性。
    • 3 编辑
      开始编辑解释器,点击后才能改动解释器的属性、添加依赖包、权限设置等选项。
    • 4 重启
      修改解释器后重启以生效。
    • 5 删除
    • 6 解释器依赖包的仓库管理
      指定解释器依赖包来源的maven仓库,有远程仓库和本地仓库两种形式。
    • 7 创建
    • 8 修改解释器使用范围
      跟菜单9一起控制解释器起作用的范围,默认全局初始化,在所有Notebook中均可以使用。如有需要可以配置成Per Note(解释器被单个Notebook占用)和Per User(解释器被单个用户占用)。
    • 9 修改解释器使用范围
      跟菜单8一起控制解释器起作用的范围,默认全局初始化,在所有Notebook中均可以使用。如有需要可以配置成Per Note(解释器被单个Notebook占用)和Per User(解释器被单个用户占用)。
    • 10 设置权限
      指定能访问此解释器的用户。

    • 11 依赖包管理
      管理解释器依赖的库,可以使用maven的组织方式,填写依赖包的groupId和artifactId;还可以通过制定依赖包在Zeppelin节点上的物理路径实现。

    JDBC示例

    默认支持的是postgres,如果需要增加其他的,可以create new interpreter

    当前直接修改jdbc

     

    ps:连接串忘了写数据库名

    然后创建一个Notebook

     

    要用路径分隔符创建文件夹

    创建完了后会是这样子

     

    查一张表:(最好不要做增删改的操作)

     

  • 相关阅读:
    树形结构菜单,递归实现
    基于Vue的日历组件,可以标注重要日子
    关于element-ui级联菜单(城市三级联动菜单)和回显问题
    继承(面试问到)
    vue监听浏览器刷新
    Popover 弹出框,里面的表格点击后关闭弹窗
    el-table表格合并单元格
    对角线
    ElementUI中el-radio再次点击取消选中
    保留文本框换行和空格
  • 原文地址:https://www.cnblogs.com/yb38156/p/15851249.html
Copyright © 2020-2023  润新知