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)、显示行号、删除等。
解释器管理
- 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