本文是 Apache Zeppelin 的完整安装实操指南,覆盖环境要求、二进制包与源码构建两种获取方式、命令行启停、环境变量配置以及基于 upstart 的服务化管理。读完本文,你将能够在 Unix 类平台与 Windows 上独立完成 Zeppelin 的安装、启动、验证与随系统自启动的部署,并为后续接入 Spark、SQL、Python 等解释器做好准备。
环境要求
Apache Zeppelin 官方支持并在以下环境中做过测试:
| 名称 | 要求 |
|---|---|
| Oracle JDK | 1.7 及以上,需设置JAVA_HOME环境变量 |
| 操作系统 | Mac OSX、Ubuntu 14.X、CentOS 6.X、Windows 7 Pro SP1 |
在启动脚本中,JAVA_HOME是否被设置会直接影响运行方式。bin/common.sh 中可以看到:若设置了JAVA_HOME,则使用${JAVA_HOME}/bin/java作为 JVM 启动器;否则回退到PATH中的java命令。因此建议在启动前显式导出JAVA_HOME,避免因 JVM 版本不一致导致运行异常。
获取 Zeppelin:二进制包还是源码构建
下载二进制包
Zeppelin 官方提供两种二进制包,二者唯一的区别在于是否内置了解释器:
- all interpreter package(全量解释器包):解压到你选择的任意目录即可直接使用,所有解释器已经随包附带;
- net-install interpreter package(网络安装解释器包):解压后需要按 安装附加解释器 的说明自行安装解释器。如果拿不定主意,直接运行
./bin/install-interpreter.sh --all安装全部解释器即可。
bin/install-interpreter.sh实际上是一个 Java 启动包装脚本,它通过org.apache.zeppelin.interpreter.install.InstallInterpreter主类(见 InstallInterpreter.java)从 Maven 仓库拉取解释器构件。哪些解释器可以安装、对应哪个 Maven artifact,由 conf/interpreter-list 定义,例如:
# [name] [maven artifact] [description] alluxio org.apache.zeppelin:zeppelin-alluxio:0.8.0 Alluxio interpreter angular org.apache.zeppelin:zeppelin-angular:0.8.0 HTML and AngularJS view rendering beam org.apache.zeppelin:zeppelin-beam:0.8.0 Beam interpreter bigquery org.apache.zeppelin:zeppelin-bigquery:0.8.0 BigQuery interpreter cassandra org.apache.zeppelin:zeppelin-cassandra_2.11:0.8.0 Cassandra interpreter built with Scala 2.11 elasticsearch org.apache.zeppelin:zeppelin-elasticsearch:0.8.0 Elasticsearch interpreter file org.apache.zeppelin:zeppelin-file:0.8.0 HDFS file interpreter flink org.apache.zeppelin:zeppelin-flink_2.11:0.8.0 Flink interpreter built with Scala 2.11 hbase org.apache.zeppelin:zeppelin-hbase:0.8.0 Hbase interpreter ignite org.apache.zeppelin:zeppelin-ignite_2.11:0.8.0 Ignite interpreter built with Scala 2.11 jdbc org.apache.zeppelin:zeppelin-jdbc:0.8.0 Jdbc interpreter kylin org.apache.zeppelin:zeppelin-kylin:0.8.0 Kylin interpreter lens org.apache.zeppelin:zeppelin-lens:0.8.0 Lens interpreter livy org.apache.zeppelin:zeppelin-livy:0.8.0 Livy interpreter md org.apache.zeppelin:zeppelin-markdown:0.8.0 Markdown support pig org.apache.zeppelin:zeppelin-pig:0.8.0 Pig interpreter python org.apache.zeppelin:zeppelin-python:0.8.0 Python interpreter scio org.apache.zeppelin:zeppelin-scio_2.11:0.8.0 Scio interpreter shell org.apache.zeppelin:zeppelin-shell:0.8.0 Shell command可以看出,net-install 包的可安装解释器覆盖了 Spark、SQL 生态之外的绝大多数场景(Spark 相关解释器默认内置在二进制包中)。该文件的单元测试见 InstallInterpreterTest.java,可用于了解安装逻辑的校验流程。
从源码构建
如果你希望基于源码自行构建,请参照 如何构建 Zeppelin 的完整说明。源码构建产物(zeppelin-server/target/classes等目录)会被启动脚本自动识别并加入 classpath,这在 bin/zeppelin-daemon.sh 中可以看到:脚本会优先加载本地构建出的zeppelin-interpreter、zeppelin-zengine、zeppelin-server的target/classes,同时也会扫描lib、lib/interpreter等目录下的 jar。
从命令行启动与停止 Zeppelin
Unix 类平台:使用守护进程脚本
在所有 Unix 类平台(Mac OSX、Linux 等)上,后台启动 Zeppelin:
bin/zeppelin-daemon.sh start启动成功后,用浏览器访问 http://localhost:8080 即可进入 Zeppelin 界面。
停止服务:
bin/zeppelin-daemon.sh stopbin/zeppelin-daemon.sh还支持更多子命令(见 bin/zeppelin-daemon.sh):
| 子命令 | 作用 |
|---|---|
start | 以 nohup 方式后台启动,写入 PID 文件 |
stop | 优雅停止进程(最长等待 40 秒,超时强制kill -9) |
restart | 先 stop 再 start |
reload | 与 restart 相同,先 stop 再 start |
status | 检查进程是否存活 |
upstart | 以服务模式前台运行,供服务管理器调用 |
-v/--version | 打印 Zeppelin 版本 |
脚本默认运行的主类是org.apache.zeppelin.server.ZeppelinServer。其运行细节包括:
- PID 文件位于
${ZEPPELIN_PID_DIR}/zeppelin-${ZEPPELIN_IDENT_STRING}-${HOSTNAME}.pid,ZEPPELIN_PID_DIR默认为${ZEPPELIN_HOME}/run,ZEPPELIN_IDENT_STRING默认为当前系统用户名(见 bin/common.sh 与 bin/zeppelin-daemon.sh); - 日志写入
${ZEPPELIN_LOG_DIR}/zeppelin-${ZEPPELIN_IDENT_STRING}-${HOSTNAME}.log,ZEPPELIN_LOG_DIR默认为${ZEPPELIN_HOME}/logs; - 启动时若日志目录或 PID 目录不存在会自动创建(
initialize_default_directories); - 启动后脚本会
sleep 2并检查进程是否存活(check_if_process_is_alive),若进程死亡会打印日志尾部便于排查; - 支持通过
--config <conf-dir>指定自定义配置目录,例如bin/zeppelin-daemon.sh --config /etc/zeppelin/conf start。
如果希望在前台运行(便于直接观察控制台输出、调试启动问题),可以使用:
bin/zeppelin.shbin/zeppelin.sh通过exec直接前台运行ZeppelinServer(见 bin/zeppelin.sh),不写 PID 文件,适合调试或 CI 场景。
Windows:使用 zeppelin.cmd
如果你在 Windows 上:
bin\zeppelin.cmd该脚本用于前台启动 Zeppelin,启动完成后同样访问 http://localhost:8080。
常用环境变量配置
Zeppelin 的所有运行参数都可以通过环境变量注入。将 conf/zeppelin-env.sh.template 复制为conf/zeppelin-env.sh后取消对应行的注释即可生效(bin/common.sh 会在启动时自动加载$ZEPPELIN_CONF_DIR/zeppelin-env.sh)。常用变量如下:
| 环境变量 | 默认值 | 说明 |
|---|---|---|
JAVA_HOME | 无 | JDK 安装路径,决定使用哪个java启动器 |
ZEPPELIN_ADDR | 127.0.0.1 | 绑定地址,需对外提供服务时改为0.0.0.0 |
ZEPPELIN_PORT | 8080 | Web 服务监听端口 |
ZEPPELIN_JAVA_OPTS | 空 | 附加 JVM 选项,如-Dspark.executor.memory=8g |
ZEPPELIN_MEM | -Xms1024m -Xmx1024m -XX:MaxPermSize=512m | Zeppelin 服务进程 JVM 内存 |
ZEPPELIN_INTP_MEM | -Xms1024m -Xmx1024m -XX:MaxPermSize=512m | 解释器进程 JVM 内存 |
ZEPPELIN_INTP_JAVA_OPTS | 空 | 解释器进程附加 JVM 选项 |
ZEPPELIN_SSL_PORT | 空 | 启用 SSL 时使用的端口 |
ZEPPELIN_JMX_ENABLE/ZEPPELIN_JMX_PORT | false/9996 | 是否开启 JMX 及端口 |
ZEPPELIN_LOG_DIR | ${ZEPPELIN_HOME}/logs | 日志目录 |
ZEPPELIN_PID_DIR | ${ZEPPELIN_HOME}/run | PID 文件目录 |
ZEPPELIN_NOTEBOOK_DIR | 无 | Notebook 存储目录 |
ZEPPELIN_NOTEBOOK_HOMESCREEN | 无 | 首页展示的 notebook id,如2A94M5J1Z |
SPARK_HOME | 无 | 设置后使用外部 Spark 安装(spark-submit 方式)运行 Spark 解释器 |
HADOOP_CONF_DIR | 无 | 设置后其目录会被加入 classpath(YARN client 模式读取 yarn-site.xml) |
其中ZEPPELIN_MEM/ZEPPELIN_INTP_MEM的默认值在 bin/common.sh 中定义,ZEPPELIN_PORT与ZEPPELIN_ADDR等参数最终由服务端配置读取并用于启动 Jetty 容器(相关配置项可参见 配置指南)。
使用服务管理器(upstart)将 Zeppelin 作为系统服务运行
Zeppelin 可以被系统服务管理器(如 upstart)自动拉起,实现开机自启与崩溃重启。以下说明基于 Ubuntu 编写。
首先在/etc/init/zeppelin.conf保存如下 upstart 脚本:
description "zeppelin" start on (local-filesystems and net-device-up IFACE!=lo) stop on shutdown # Respawn the process on unexpected termination respawn # respawn the job up to 7 times within a 5 second period. # If the job exceeds these values, it will be stopped and marked as failed. respawn limit 7 5 # zeppelin was installed in /usr/share/zeppelin in this example chdir /usr/share/zeppelin exec bin/zeppelin-daemon.sh upstart配置要点说明:
start on (local-filesystems and net-device-up IFACE!=lo):在本地文件系统就绪且非回环网卡联网后启动服务;respawn+respawn limit 7 5:进程意外终止时自动重启,5 秒内最多重启 7 次,超过则标记为失败并停止;chdir:必须指向你的 Zeppelin 安装目录(示例中为/usr/share/zeppelin,请按实际解压路径修改);exec bin/zeppelin-daemon.sh upstart:以 upstart 模式运行守护脚本。该模式在 bin/zeppelin-daemon.sh 中实现:与start不同,它不进行nohup后台化,而是前台运行 Java 进程,将标准输出追加到${ZEPPELIN_OUTFILE},从而把进程生命周期完全交给服务管理器接管。
保存后即可用标准的 service 命令管理 Zeppelin:
sudo service zeppelin start sudo service zeppelin stop sudo service zeppelin restart其他服务管理器(如 systemd)也可采用类似思路,把upstart参数透传给zeppelin-daemon.sh即可:
bin/zeppelin-daemon.sh upstart验证安装与后续步骤
启动完成后打开 http://localhost:8080,看到 Zeppelin 首页即表示安装成功。接下来可按需深入:
- 熟悉界面:先阅读 探索 Zeppelin UI,了解 Notebook、Paragraph 与解释器绑定等核心概念;
- 跑通首个 Notebook:在浏览器中打开内置的 Tutorial Notebook(仓库中的对应笔记文件见 notebook/2A94M5J1Z/note.json),体验完整的数据分析流程;
- 调整配置:参考 配置指南 修改端口号、绑定地址等参数(也可直接通过
conf/zeppelin-env.sh注入环境变量); - 接入计算引擎:
- Zeppelin 中的 Spark 支持(与 Apache Spark 深度集成);
- Zeppelin 中的 SQL 支持;
- Zeppelin 中的 Python 支持(含 Matplotlib、Pandas、Conda/Docker 集成);
- 更多可用解释器见各解释器模块目录(如 flink、jdbc、livy、python 等);
- 多用户支持:如需部署为多人使用环境,请查看 多用户支持。
至此,Apache Zeppelin 已完成安装、启动与必要的服务化管理配置,可以进入 Notebook 交互式数据分析的实际使用阶段。
- 后端
- 前端
- 大数据
- 数据分析
【免费下载链接】zeppelin
Web-based notebook that enables>项目地址:https://gitcode.com/gh_mirrors/zeppelin2/zeppelin
相关推荐
Apache Zeppelin 安装与启动完全指南:从二进制包、源码构建到 Docker 与服务化管理
Apache Zeppelin 安装与启动完全指南:从二进制包、源码构建到 Docker 与服务化管理 Apache Zeppelin 是一款 Web 端的数据
数据分析数据可视化大数据后端Apache Zeppelin 安装与启动全指南:二进制包、命令行、Docker 与服务化管理
Apache Zeppelin 安装与启动全指南:二进制包、命令行、Docker 与服务化管理 Apache Zeppelin 是一个基于 Web 的笔记本式数
数据分析数据可视化大数据后端前端任务调度kitty 终端快速上手指南:二进制安装、包管理器部署与从源码构建
kitty 终端快速上手指南:二进制安装、包管理器部署与从源码构建 本篇指南以 kitty 官方文档 docs/quickstart.rst https://l
桌面应用