news 2026/10/10 1:47:28

Apache Zeppelin 安装指南:从二进制包部署、源码构建到服务化管理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Apache Zeppelin 安装指南:从二进制包部署、源码构建到服务化管理

本文是 Apache Zeppelin 的完整安装实操指南,覆盖环境要求、二进制包与源码构建两种获取方式、命令行启停、环境变量配置以及基于 upstart 的服务化管理。读完本文,你将能够在 Unix 类平台与 Windows 上独立完成 Zeppelin 的安装、启动、验证与随系统自启动的部署,并为后续接入 Spark、SQL、Python 等解释器做好准备。

环境要求

Apache Zeppelin 官方支持并在以下环境中做过测试:

名称要求
Oracle JDK1.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 stop

bin/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.sh

bin/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_ADDR127.0.0.1绑定地址,需对外提供服务时改为0.0.0.0
ZEPPELIN_PORT8080Web 服务监听端口
ZEPPELIN_JAVA_OPTS空附加 JVM 选项,如-Dspark.executor.memory=8g
ZEPPELIN_MEM-Xms1024m -Xmx1024m -XX:MaxPermSize=512mZeppelin 服务进程 JVM 内存
ZEPPELIN_INTP_MEM-Xms1024m -Xmx1024m -XX:MaxPermSize=512m解释器进程 JVM 内存
ZEPPELIN_INTP_JAVA_OPTS空解释器进程附加 JVM 选项
ZEPPELIN_SSL_PORT空启用 SSL 时使用的端口
ZEPPELIN_JMX_ENABLE/ZEPPELIN_JMX_PORTfalse/9996是否开启 JMX 及端口
ZEPPELIN_LOG_DIR${ZEPPELIN_HOME}/logs日志目录
ZEPPELIN_PID_DIR${ZEPPELIN_HOME}/runPID 文件目录
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

点击查看免费下载

相关推荐

上一篇:终极ESP32物联网开发指南:从零构建智能设备的完整教程
下一篇:ReactPy中的国际化翻译工作流工具比较:不同工具功能

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/10 1:47:03

Outline MCP 服务器详解:Tools 工具集与 Skills 扩展的架构与实践

知识库知识管理协同办公后端前端 【免费下载链接】outline The fastest knowledge base for growing teams. Beautiful, realtime collaborative, feature packed, and markdown compatible. 项目地址&#xff1a; https://gitcode.com/GitHub_Trending/ou/outline 点击查看 免…

作者头像 李华
网站建设 2026/10/10 1:45:18

TonyPi人形机器人本地LLM语音交互系统实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/10 1:45:07

Apache Beam 中的 Avro 文件读写:AvroIO 连接器全解析

批处理流处理大数据 【免费下载链接】beam Apache Beam is a unified programming model for Batch and Streaming data processing. 项目地址&#xff1a; https://gitcode.com/gh_mirrors/beam15/beam 点击查看 免费下载 导读 Apache Avro 是一种面向行存储与数据交换的序列…

作者头像 李华
网站建设 2026/10/10 1:44:51

作物害虫识别实战:从数据集预处理到迁移学习模型训练全流程

简介&#xff1a;面向计算机、人工智能、数据科学及相关专业的同学和从业者&#xff0c;这套基于机器学习的作物害虫识别与分类项目包&#xff0c;覆盖从数据加载、模型训练到分类结果输出的完整流程&#xff0c;既可用来练手入门&#xff0c;也可作为大作业、课程设计或毕业设…

作者头像 李华
网站建设 2026/10/10 1:44:40

波士顿房价预测实战:线性回归从数据预处理到模型评估全流程

简介&#xff1a;一份以波士顿房价预测为主线、线性回归从原理到实战的代码合集&#xff0c;适合机器学习初学者与需要快速搭建回归预测流程的开发者。资源共20个文件&#xff0c;含11个Python脚本与9个CSV数据文件&#xff1a;脚本承担数据加载、特征工程、模型训练、评估与可…

作者头像 李华