ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

99-zeppelin使用和一些预研

2022-01-27 21:36:11  阅读:240  来源: 互联网

标签:解释器 用户 99 Notebook zeppelin 交互式 预研 Zeppelin


概述

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

 

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

创建完了后会是这样子

 

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

 

 

标签:解释器,用户,99,Notebook,zeppelin,交互式,预研,Zeppelin
来源: https://www.cnblogs.com/yb38156/p/15851249.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有