Apache Zeppelin Notebook REST API 完全指南
概述
Apache Zeppelin 是一个强大的开源数据分析工具,它提供了丰富的 REST API 接口,允许开发者通过编程方式与 Zeppelin 服务器进行交互。这些 API 覆盖了 Notebook 的创建、管理、执行等各个方面,为自动化工作流和系统集成提供了极大便利。
基础信息
所有 Zeppelin REST API 都基于以下基础端点:
http://[zeppelin-server]:[zeppelin-port]/api
API 请求和响应都采用 JSON 格式,建议使用 JSON 查看器来更好地处理这些数据。
Notebook 操作
1. 获取 Notebook 列表
功能:获取服务器上所有可用的 Notebook 列表。
请求方式:GET
端点:/api/notebook
响应示例:
{
"status": "OK",
"body": [
{"path":"Homepage", "id":"2AV4WUEMK"},
{"path":"Zeppelin Tutorial", "id":"2A94M5J1Z"}
]
}
2. 创建新 Notebook
功能:创建一个新的 Notebook,可以指定名称和初始段落。
请求方式:POST
端点:/api/notebook
请求体示例(简单创建):
{"name": "我的新 Notebook"}
请求体示例(带初始段落):
{
"name": "数据分析 Notebook",
"paragraphs": [
{
"title": "数据加载",
"text": "%spark\nval data = spark.read.csv('data.csv')"
}
]
}
响应示例:
{
"status": "OK",
"body": "2AZPHY918"
}
3. 获取 Notebook 详细信息
功能:获取指定 Notebook 的完整信息,包括所有段落内容。
请求方式:GET
端点:/api/notebook/[noteId]
响应示例:
{
"status": "OK",
"body": {
"paragraphs": [
{
"text": "%sql SELECT * FROM users",
"results": {
"code": "SUCCESS",
"msg": [{"type": "TABLE", "data": "id\tname\n1\tAlice\n2\tBob"}]
}
}
],
"name": "数据分析 Notebook",
"id": "2A94M5J1Z"
}
}
4. 删除 Notebook
功能:删除指定的 Notebook。
请求方式:DELETE
端点:/api/notebook/[noteId]
响应示例:
{"status": "OK"}
5. 克隆 Notebook
功能:克隆一个现有的 Notebook,可以选择指定特定版本。
请求方式:POST
端点:/api/notebook/[noteId]
请求体示例:
{
"name": "数据分析 Notebook - 副本",
"revisionId": "rev123"
}
6. 重命名 Notebook
功能:修改 Notebook 的名称。
请求方式:PUT
端点:/api/notebook/[noteId]/rename
请求体示例:
{"name": "数据分析 Notebook - 新版"}
段落操作
1. 创建新段落
功能:在指定 Notebook 中创建新段落。
请求方式:POST
端点:/api/notebook/[noteId]/paragraph
请求体示例:
{
"title": "数据可视化",
"text": "%spark\n// 可视化代码",
"index": 1
}
2. 获取段落信息
功能:获取指定段落的详细信息。
请求方式:GET
端点:/api/notebook/[noteId]/paragraph/[paragraphId]
3. 执行 Notebook 所有段落
功能:执行 Notebook 中的所有段落。
请求方式:POST
端点:/api/notebook/job/[noteId]
4. 停止执行 Notebook 所有段落
功能:停止正在执行的 Notebook 所有段落。
请求方式:DELETE
端点:/api/notebook/job/[noteId]
导入导出操作
1. 导出 Notebook
功能:将 Notebook 导出为 JSON 格式。
请求方式:GET
端点:/api/notebook/export/[noteId]
2. 导入 Notebook
功能:从 JSON 文件导入 Notebook。
请求方式:POST
端点:/api/notebook/import
最佳实践
- 错误处理:始终检查 API 响应中的状态码和错误信息。
- 批量操作:对于大量 Notebook 管理,考虑使用脚本结合这些 API。
- 版本控制:利用克隆功能时,可以指定 revisionId 来获取特定版本。
- 自动化工作流:结合执行 API 可以构建自动化数据分析流水线。
总结
Apache Zeppelin 的 Notebook REST API 提供了完整的管理和执行功能,使得 Zeppelin 可以轻松集成到各种数据分析和自动化工作流中。无论是简单的 Notebook 管理,还是复杂的自动化数据处理,这些 API 都能提供强大的支持。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



