编译
- 编译
mvn install -Pbuild-distr -Pspark-1.6 -Dspark.version=1.6.2 -Phadoop-2.7 -Dhadoop.version=2.7.2 [-Pr|-Psparkr] -Ppyspark -Dmaven.findbugs.enable=false -Drat.skip=true -Dcheckstyle.skip=true -Denforcer.skip=true -Dcobertura.skip=true -DskipTests -X
-
bin
目录说明
脚本 | 作用 |
---|---|
zeppelin-daemon.sh | 提供以daemon 形式启停 org.apache.zeppelin.server.ZeppelinServer 服务,并调用common.sh 和function.sh 设置env 和classpath
|
zeppelin.sh | 以foreground 的形式启动ZeppelinServer
|
Interpreter.sh | 采用单独进程启动 org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer 服务,该脚本不会被其他脚本直接调用,实际是通过apache common-exec 来调用的 |
common.sh | 设置zeppelin 运行时需要的env 和classpath ,如果${ZEPPELIN_HOME}/conf/ 目录中存在zeppelin-env.sh ,则会调用该脚本 |
function.sh | 一些公共基础函数 |
-
conf
目录说明
配置文件 | 作用 |
---|---|
shiro.ini | 供apache shiro 框架使用的权限控制文件 |
zeppelin-env.sh | 供${ZEPPELIN_HOME}/bin/common.sh 脚本调用,设置诸如:SPARK_HOME 、HADOOP_CONF_DIR 等zeppelin 与外围环境集成的环境变量 |
zeppelin-site.xml.template |
zeppelin 的配置模板,被注释掉的 property 是 zeppelin 的默认配置,可以 rename 成 zeppelin-site.xml 然后根据需要 override
|
- 模块依赖关系
- 核心模块
模块 | 作用 | 开发语言 |
---|---|---|
zeppelin-server | 项目的主入口,通过内嵌Jetty的方式提供Web UI和REST服务,并且提供了基本的权限验证服务 | java |
zeppelin-zengine | 实现Notebook的持久化、检索, 实现interpreter的自动加载,以及maven式的依赖自动加载 | java |
zeppelin-interpreter | 为了支持多语言Notebook,抽象出了每种语言都要事先的Interpreter接口,包括:显示、调度、依赖以及和zeppelin-engine之间的Thirft通信协议 | java |
zeppelin-web | AngluarJS开发的web页面 | Javascript(主要是AngularJS、Node.JS以及使用websocket) |
zeppelin-display | 实现向前台Angular元素绑定后台数据 | scala |
zeppelin-spark-dependencies | 无具体功能,maven的最佳实践,将多个module都要依赖的公共类单独抽离出来,供其他module依赖。目前zeppelin-zinterpreter和zeppelin-spark这2个module依赖它 | java |
zeppelin-distribution | 为了将整个项目打包成发布版,而设置的 module ,打包格式见src/assembly/distribution.xml 。 |
xml |
- 模块依赖关系
Helium
扩展包
Helium是一个可视化模块,可以在Zeppelin中使用,支持插拔式加载。Helium从Zeppelin-0.7开始支持,通过 Helium framework 框架实现。
因为Helium是 npm package, 可以发布到 npm registry。这是在registry发布的Helium packages 列表。如果希望了解在Zeppelin中工作的细节, 查看 How it works。你可以可以创建一个你自己的包,参考 Write new Visualization 中的方法。
安装使用
将包描述文件 zeppelin-bubble.json 放到本地存储registry目录 (却省为 ZEPPELIN_HOME/helium
)。然后到主界面菜单选择Helium即可打开管理界面,然后配置为启用即可。
-
zeppelin-bubblechart
气泡图
{
"type" : "VISUALIZATION",
"name" : "zeppelin-bubblechart",
"description" : "Animated bubble chart",
"artifact" : "zeppelin-bubblechart@0.0.4",
"license" : "BSD-2-Clause",
"icon": "<svg viewBox='0 0 70 70'><circle cx='26' cy='28' stroke='black' style='stroke-width: 1px;' r='25' fill='seagreen'/><circle cx='42' cy='44' stroke='black' style='stroke-width: 1px;' r='20' fill='DodgerBlue'/>
<circle cx='54' cy='24' stroke='black' style='stroke-width: 1px;' r='15' fill='crimson'/></svg>"
}
-
zeppelin-leaflet
地图
{
"type": "VISUALIZATION",
"name": "volume-leaflet",
"description": "A geospatial visualization for Apache Zeppelin using Leaflet",
"artifact": "volume-leaflet@v1.0.2",
"license": "BSD-2-Clause",
"icon": "<i class='fa fa-globe'></i>"
}
注
$ZEPPELIN_HOME/local-repo/helium-bundle/bundles
为 helium
实际安装目录
pyecharts
集成
- 普通图
%python
from pyecharts.globals import CurrentConfig, NotebookType
CurrentConfig.NOTEBOOK_TYPE = NotebookType.ZEPPELIN
import pyecharts.options as opts
from pyecharts.charts import Bar
bar = (
Bar()
.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
.add_yaxis("商家B", [15, 6, 45, 20, 35, 66])
.set_global_opts(title_opts=opts.TitleOpts(title="主标题", subtitle="副标题"))
)
# 直接使用 notebook 进行渲染
bar.render_notebook()
- 地图
%python
from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.faker import Faker
from pyecharts.globals import CurrentConfig, NotebookType
CurrentConfig.NOTEBOOK_TYPE = NotebookType.ZEPPELIN
map = Map()
map.add("商家A", [list(z) for z in zip(Faker.provinces, Faker.values())], "china")
map.add("商家C", [list(z) for z in zip(Faker.provinces, Faker.values())], "china")
map.set_global_opts(title_opts=opts.TitleOpts(title="Map-基本示例"))
# 渲染到 html ,然后使用 html 模式进行展示
html_content = map.render_embed()
print("%html {}".format(html_content))
-
pandas
数据显示
%python
import pandas as pd
data = {
"rows": [
{
"country": "中国",
"city": "陕西西安市",
"times": "2",
"date": "2010~2014",
"remark": "读书四年,常往西安,一座有中国古代文化的城市",
"longitude": "108.941433",
"latitude": "34.343424"
},
{
"country": "中国",
"city": "陕西省咸阳市乾县——乾陵",
"times": "2",
"date": "2011年4月",
"remark": "清明节游乾陵,武则天无字碑,唐高宗墓,有唐永泰公主墓,乾陵地宫……",
"longitude": "108.217844",
"latitude": "34.578448"
}
]
}
df = pd.DataFrame(data['rows'])
df['geo'] = df.apply(lambda r: '%s,%s' % (r['latitude'], r['longitude']), axis=1)
z.show(df)
安装 interpreter
# 查看帮助
./bin/install-interpreter.sh
# 安装指定 interpreter
./bin/install-interpreter.sh --name md,shell,jdbc,python
# 安装所有 interpreter
./bin/install-interpreter.sh --all
# 指定版本安装
./bin/install-interpreter.sh -n sparql -t org.apache.zeppelin:zeppelin-sparql:0.9.0-preview2
注
从安装过程日志看出 $ZEPPELIN_HOME/interpreter/
存放所有 interpreter
库,仓库下载地址在 $ZEPPELIN_HOME/conf/interpreter.json
中配置的
网友评论