其他分享
首页 > 其他分享> > 99-zeppelin使用和一些预研

99-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)、显示行号、删除等。

 

解释器管理

 

 

 

JDBC示例

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

当前直接修改jdbc

 

 

 

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

然后创建一个Notebook

 

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

创建完了后会是这样子

 

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

 

 

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