为满足用户数据开发、数据探索场景提供的交互式开发环境。 Notebook 基于开源的 Jupyterlab 定制化开发,支持使用 Python、Bash、Markdown 语言、引入第三方库完成数据开发以及算法开发并且发布成定时调度执行任务。本文将为您介绍如何在 DataLeap 平台上创建 Notebook 调度任务。
Notebook 架构说明 目前 Notebook 支持新、旧两种架构模式,以项目 为粒度进行管理。当您新建项目时,会自动采用新架构,而已采用旧架构的存量项目则保持不变。
两种架构模式支持的 Kernel 类型不完全相同,具体如下:
架构模式
支持的 Kernel 类型
说明
新架构
Python on K8s Python on emr_serverless_spark_python Ray on EMR Serverless 优化了 Kernel 生命周期管理,支持更精细的启动日志和状态管理。
旧架构
Python on K8s Spark on EMR Serverless 保持原有行为不变。
说明
新架构下的 Python on emr_serverless_spark_python 和 旧架构下的 Spark on EMR Serverless 是同一种 Kernel 类型。 仅 Spark on EMR Serverless / Python on emr_serverless_spark_python 和 Python on K8s 两种类型的任务支持架构切换。若您想切换项目架构,您可通过提工单 的方式联系我们。
1 使用限制
2 新建任务 登录 DataLeap租户控制台 。 在具体项目中进入数据开发 界面,进行交互式分析 任务类型的新建操作。 注意
任务名称信息仅允许字符.、字母、数字、下划线、连字符、[]、【】、()、()以及中文字符,且需要在127个字符以内。
3 任务配置
3.1 配置环境启动信息 新建任务完成后,首次打开Notebook,需先配置环境启动信息:
其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
参数 说明 *选择 Kernel
Notebook Kernel 是执行 Notebook 文件包含代码的计算引擎,比如 ipython kernel 执行 python 代码。 打开 Notebook 任务,配置环境后,默认将自动启动 Kernel,您也可以在下方勾选“Notebook任务打开时,默认不自动启动Kernel 。”选项,将暂不启动 Kernel。启动 Kernel,运行代码时,Kernel 执行计算并产出结果。 Notebook 新、旧两种架构模式支持的 Kernel 类型不完全相同,具体如下:
新架构:支持选择项 Python on K8s、Python on emr_serverless_spark_python、Ray on EMR Serverless。 旧架构:支持选项 Python on K8s、Spark on EMR Serverless。 说明
Python on emr_serverless_spark_python 和 Spark on EMR Serverless 是同一种 Kernel 类型。 新建项目时,会自动采用新架构,而已采用旧架构的存量项目则保持不变。 *计算资源组 支持选择公共计算资源组、独享计算资源组 。 *镜像
支持填写任务所需依赖的自定义镜像地址。您可自行输入地址,或选择平台提供的两个镜像地址:
dataleap-{region}.cr.volces.com/studio/notebook_runtime:online 该镜像地址可供 Python 3.7 版本环境使用。 dataleap-{region}.cr.volces.com/studio/notebook_runtime:python-3-12 该镜像地址可供 Python 3.12 版本环境使用。 两个地址均预装了常用第三方库,更多 Python 第三方库,您可通过任务,来执行 pip 命令方式安装。如:pip install emoji。
说明
默认镜像地址中 {region} 值,需根据实际情况替换为具体地域信息,如 cn-beijing、cn-shanghai、ch-guangzhou、ap-southeast-1
*资源配置
您可根据实际需求进行配置,以 CU 为单位,默认配置 1CU(1CU = 1Core 4GB),下拉可选择更多规格的资源配置。
说明
其中 0.25、0.5 CU 规格,仅独享计算资源组 支持选择。
参数 说明 *选择 Kernel
Notebook Kernel 是执行 Notebook 文件包含代码的计算引擎,比如 ipython kernel 执行 python 代码。 打开 Notebook 任务,配置环境后,默认将自动启动 Kernel,您也可以在下方勾选“Notebook任务打开时,默认不自动启动Kernel 。”选项,将暂不启动 Kernel。启动 Kernel,运行代码时,Kernel 执行计算并产出结果。 Notebook 新、旧两种架构模式支持的 Kernel 类型不完全相同,具体如下:
新架构:支持选择项 Python on K8s、Python on emr_serverless_spark_python、Ray on EMR Serverless。 旧架构:支持选项 Python on K8s、Spark on EMR Serverless。 说明
Python on emr_serverless_spark_python 和 Spark on EMR Serverless 是同一种 Kernel 类型。 新建项目时,会自动采用新架构,而已采用旧架构的存量项目则保持不变。 *计算资源组
支持选择公共计算资源组。
说明
该 Kernel 类型仅支持通过公共计算资源组 执行。
*镜像
支持填写任务所需依赖的自定义镜像地址。您可自行输入地址,或选择平台提供的两个镜像地址:
dataleap-{region}.cr.volces.com/studio/notebook_runtime:online 该镜像地址可供 Python 3.7 版本环境使用。 dataleap-{region}.cr.volces.com/studio/notebook_runtime:python-3-12 该镜像地址可供 Python 3.12 版本环境使用。 两个地址均预装了常用第三方库,更多 Python 第三方库,您可通过任务,来执行 pip 命令方式安装。如:pip install emoji。
说明
默认镜像地址中 {region} 值,需根据实际情况替换为具体地域信息,如 cn-beijing、cn-shanghai、ch-guangzhou、ap-southeast-1
*队列
下拉选择已在项目中添加的 Spark 计算队列信息。
注意
Notebook 查询作业中,Spark 队列信息需选择 Default 计算组 资源容量充足的队列来启动 Kernel,Notebook 任务不支持使用 SQL 计算组资源容量。 且需在下方的 Spark 参数中,添加该参数 tqs.query.engine.type = sparkcli。
Spark 参数
输入任务执行环境中,所需要用到的 Spark 参数,可通过以下方式进行配置:
单行编辑模式:在对应输入框中,输入参数的 key-value 值。
其中,value 值可通过自定义 或者项目参数 {{value}}的形式进行配置。若您希望同一套代码能在不同执行环境下,自动区分不同的引擎环境参数、项目参数,或者存在敏感信息需要通过加密参数传递时,可以通过在 value 中设置项目参数 的方式,满足此类场景需求。 项目参数可在本项目控制台 > 参数信息 界面中进行配置。操作详见参数信息设置 。 脚本编辑模式:支持 JSON、Yaml 的格式,直接用脚本方式进行配置参数,获取项目参数时,同样可用 {{value}}形式进行配置。 注意
子用户使用 Spark on EMR Serverless / Python on emr_serverless_spark_python 查询任务需关注权限配置:
任务访问 TOS 资源、Spark 队列资源前,子用户所属的 AK/SK 信息必须完成对应鉴权。AK/SK 信息您可进入访问控制台的密钥管理界面 获取,复制 Access key ID、 Secret Access Key 信息。如果是子用户,请联系主账号获取密钥。详见 AK 秘钥管理 。
鉴权操作说明详见2 准备工作 若配置任务的子用户与参数中填写 AK/SK 信息的子用户不同,则您需确保填写 AK/SK 的子用户拥有 TOS 存储桶和 Spark 队列的访问权限,避免因权限不匹配导致任务启动异常。 在 Spark 参数中添加的鉴权参数信息如下:serverless.spark.access.key: xxxxxxxserverless.spark.secret.key: xxxxxxx
参数 说明 *选择 Kernel
Notebook Kernel 是执行 Notebook 文件包含代码的计算引擎,比如 ipython kernel 执行 python 代码。 打开 Notebook 任务,配置环境后,默认将自动启动 Kernel,您也可以在下方勾选“Notebook任务打开时,默认不自动启动Kernel 。”选项,将暂不启动 Kernel。启动 Kernel,运行代码时,Kernel 执行计算并产出结果。 Notebook 新、旧两种架构模式支持的 Kernel 类型不完全相同,具体如下:
新架构:支持选择项 Python on K8s、Python on emr_serverless_spark_python、Ray on EMR Serverless。 旧架构:支持选项 Python on K8s、Spark on EMR Serverless。 说明
Python on emr_serverless_spark_python 和 Spark on EMR Serverless 是同一种 Kernel 类型。 新建项目时,会自动采用新架构,而已采用旧架构的存量项目则保持不变。 *计算资源组
支持选择公共计算资源组。
说明
Ray on EMR Serverless 的 Kernel 类型,仅支持通过公共计算资源组 执行。
*镜像
支持填写任务所需依赖的自定义镜像地址。您可自行输入地址,或选择平台提供的两个镜像地址:
dataleap-{region}.cr.volces.com/studio/notebook_runtime:online 该镜像地址可供 Python 3.7 版本环境使用。 dataleap-{region}.cr.volces.com/studio/notebook_runtime:python-3-12 该镜像地址可供 Python 3.12 版本环境使用。 两个地址均预装了常用第三方库,更多 Python 第三方库,您可通过任务,来执行 pip 命令方式安装。如:pip install emoji。
说明
默认镜像地址中 {region} 值,需根据实际情况替换为具体地域信息,如 cn-beijing、cn-shanghai、ch-guangzhou、ap-southeast-1
*队列
下拉选择已在项目中添加的 EMR Serverless Spark 计算队列信息。
注意
Notebook 查询作业中,Spark 队列信息需选择 Default 计算组 资源容量充足的队列来启动 Kernel,Notebook 任务不支持使用 SQL 计算组资源容量。
Ray 参数
输入任务执行环境中,所需要用到的 Ray 参数,可通过以下方式进行配置:
单行编辑模式:在对应输入框中,输入参数的 key-value 值。
其中,value 值可通过自定义 或者项目参数 {{value}}的形式进行配置。若您希望同一套代码能在不同执行环境下,自动区分不同的引擎环境参数、项目参数,或者存在敏感信息需要通过加密参数传递时,可以通过在 value 中设置项目参数 的方式,满足此类场景需求。 项目参数可在本项目控制台 > 参数信息 界面中进行配置。操作详见参数信息设置 。 脚本编辑模式:支持 JSON、Yaml 的格式,直接用脚本方式进行配置参数,获取项目参数时,同样可用 {{value}}形式进行配置。
启动信息配置完成后,单击确认 按钮,启动 Kernel 连接,待导航栏 Kernel 状态为 “空闲” 后,即代表启动成功,可进行后续的调试运行代码逻辑。
Kernel状态说明:
Idle 空闲状态:Kernel 处于空闲状态,随时可运行任务。 Busy 状态:正在运行代码,Kernel 处于忙碌状态,需等待当前代码执行完成后,再执行后续任务代码。 disconnected 断开状态(断网):Kernel 有网络断开的情况,您需要手动刷新下界面,启动 Kernel 后,再执行任务。 connected 连接状态:Kernel 正处于连接状态。 dead 状态:连接失败状态,您可以在右侧查看失败原因。 日志:您可查看当前 Kernel 启动时的日志信息,以便排查异常启动失败等问题。 下拉按钮中,您可对 Kernel 进行以下操作:
重置:重置 Kernel 后,所有上下文信息包括变量将被彻底清除。 重启:重启 Kernel 后,环境完全被销毁重建,需要重新申请计算资源构建环境,预计会耗费一定时间。 关闭:关闭 Kernel 后,环境完全被销毁,无法运行代码。
3.2 编辑任务 启动 Kernel 状态正常后,即可进入代码开发。目前已支持 Python、Markdown、Bash、Raw 几种语言。
您可以在当前的 cell 框中,输入对应语言的代码逻辑,以 Python 语言为例:
# 如何查看预装第三方包
# cell类型选择python,执行以下操作
!pip3 list
# 如何安装第三方包
# cell类型选择python,执行以下操作,以安装library_name为例
!pip3 install library_name
示例代码 - 使用 plotly 画图
!pip3 install plotly
import plotly.express as px
df = px.data.iris()
fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species")
fig.show()
参数:
在代码编辑器中,您可输入动态、系统变量、项目参数等,如时间参数 ${date}、${hour} 。时间参数使用可参考:时间变量与常量说明 ;项目参数使用方式详见输入输出参数设置 。
您可在界面下方,进行业务日期的选择,便可在界面上方单击运行 按钮,在查询时完成时间参数替换操作。
Cell 单元框功能按钮:
序号
参数
说明
1
语言选择
支持 Python、Bash、Markdown、Raw 三种语言选择。
2
Format Cell
将书写代码格式化操作。
3
New Cell
添加一个新的 Cell。
4
Copy Cell and Paste Below Cell
复制并粘贴内容到当前单元框后面。
5
Cut Cell
剪切当前单元框。
6
Paste Below Cell
粘贴内容到当前单元框后面。
7
Delete Cell
删除当前单元框。
8
Cell 框右键操作
单元框的更多快捷操作,可通过在 Cell 框中右键查看更多操作项。
其中 Enable Notebook Vim mode 可以将编辑框开启/关闭 vim 模式。
3.3 执行设置 单击进入右侧侧边栏执行设置 窗口,并进行以下设置:
3.4 调度设置 进入右侧边栏调度设置 ,配置节点调度相关属性。设置操作详见:调度设置 。
4 调试并提交发布任务 任务配置完成后,您可单击操作栏中的保存 和运行/运行所有 按钮,进行任务调试。说明
调试成功,Kernel 处于空闲状态后,如果后续无人再次发起调试,或者关闭调试 Tab 页签后,那么将会在 3 小时内释放资源给其他任务使用。
调试结果无误后,单击上方操作栏中的提交上线 按钮,在提交上线 对话框中,选择回溯数据、监控设置、提交设置 等参数,最后单击确认 按钮,完成作业提交。 提交上线说明详见:数据开发概述---离线任务提交 。 后续任务运维操作详见:离线任务运维 。