You need to enable JavaScript to run this app.
文档中心
文档控制台
注册
复制全文
下载 pdf
资源与数据处理
数据处理任务概述
复制全文
下载 pdf
数据处理任务概述

LAS 数据处理的核心资源是队列:它承载所有算子 / 脚本运行所需的 CPU、GPU 与内存;开发机、任务管理、工作流三者都以队列为底座,各自解决"调试、批量执行、复杂调度"三个阶段的问题。本文为您介绍 LAS 数据处理四个核心模块——队列开发机任务管理工作流——之间的依赖关系与协同方式。

核心功能模块

LAS 数据处理的核心模块(开发机 / 任务管理 / 工作流)依赖底层队列,并从外部资源读取脚本、镜像、数据与算子模板。
Image
四个模块的分工与依赖关系如下:

模块

解决的问题

与其他模块的关系

队列(Queue)

提供 CPU / GPU 计算资源

被开发机、任务、工作流共享消费;分为 独占队列(EMR Serverless)计算队列(LAS 队列) 两类,官方推荐独占队列

开发机(DevBox)

交互式调试算子代码

运行在指定队列上,读取 TOS / 镜像仓库 / 数据集;代码调通后再迁移到任务管理批量执行

任务管理(Task)

提交批量 / 周期性任务

选择队列消费资源;支持 Daft / Python / Spark 三种任务类型;可从算子广场获取算子模板与环境变量清单

工作流(Workflow)

多任务 DAG 编排与调度

把多个任务组织成有依赖关系的 DAG,触发时依次向队列提交任务实例

数据处理链路

通用链路

从创建队列到查看结果的完整链路,含调试与调度旁支(Daft / Python / Spark),通常按下面 6 步展开:
Image
主链路:创建队列 → 创建开发机 → 上传代码到 TOS → 创建任务 → 提交到队列执行 → 查看任务实例;上方旁支为三种触发方式,下方虚线为参数迭代闭环。

  • 主链路: 创建队列 → 开发机调试 → 上传代码到 TOS → 创建任务 → 提交到队列执行 → 查看实例日志与结果。
  • 触发方式: 任务创建后可通过 手动执行 / 周期调度 / 工作流编排 三种方式触发;执行结果不满足预期时,回到「创建任务」环节调整脚本、环境变量或资源参数即可迭代。

操作示例

下面以 LAS 算子广场提供的离线算子「视频关键帧抽取」为例,串联上面提到的所有模块,演示如何把一个算子跑到队列上。

前提条件

  • 已在 LAS 控制台创建好一个计算队列(推荐使用 独占队列),并具备提交任务的权限。队列创建流程详见队列管理
  • 已开通与 LAS 同区域 的 TOS 桶,用于存放算子脚本与输入 / 输出数据。
  • 已在 LAS 算子广场找到「视频关键帧抽取」算子,并记录其 环境变量清单入口命令 模板。

注意

当选用 自定义镜像 时,任务暂不支持运行在独占队列(EMR Serverless 队列)上;此时需切换到 LAS 计算队列。

Step 1:准备算子代码并上传到 TOS

  1. 参照算子广场中「视频关键帧抽取」的示例代码,把脚本另存为 test.py,示意结构如下(实际以算子广场为准):

    # test.py —— 视频关键帧抽取离线算子示例
    import os
    import daft
    
    # 1. 从环境变量读取算子广场约定的参数
    input_uri  = os.getenv("INPUT_URI")        # 输入视频目录,例如 tos://your-bucket/videos/
    output_uri = os.getenv("OUTPUT_URI")       # 关键帧输出目录
    frame_rate = float(os.getenv("FRAME_RATE", "1.0"))  # 抽帧频率(帧/秒)
    model_path = os.getenv("MODEL_PATH", "/mnt/data/keyframe_model")
    
    # 2. 用 Daft 读取视频,调用关键帧抽取算子
    df = daft.read_video(input_uri)
    df = df.with_column(
        "keyframes",
        df["video"].apply_udf("keyframe_extract", fps=frame_rate, model=model_path),
    )
    
    # 3. 结果写回 TOS
    df.write_parquet(output_uri)
    
  2. test.py 上传到与 LAS 同区域的 TOS 桶,落到约定路径:

    tosutil cp ./test.py tos://test/test.py
    

    本文示例统一使用 tos://test/test.py 作为脚本地址、/test/ 作为任务内挂载路径;实际使用请替换成你自己的桶名与目录。

Step 2:创建任务并挂载 TOS 目录

进入 LAS 控制台 > 数据处理 > 任务管理 > 创建任务,按以下要点填写基本信息与环境信息:

配置项

示例值

名称

video-keyframe-extract

任务类型

Daft(多模态大数据首选;若脚本较轻量也可选 Python)

镜像

内置镜像:选择 LAS 官方 Daft 镜像;或使用算子广场推荐的自定义镜像

存储路径挂载

挂载类型 TOS,源路径 tos://test/,容器内挂载路径 /test/

挂载完成后,任务启动时容器内的 /test/test.py 就直接指向 TOS 上的脚本;后续任何脚本改动只需重传 TOS,不用重新创建任务。

Step 3:按算子广场说明填写环境变量

打开 LAS 算子广场「视频关键帧抽取」页面,把「环境变量」区块里列出的键值原样填到任务的 环境变量 表单里。以本示例为例(实际以算子广场为准):

Key

Value(示例)

INPUT_URI

tos://your-bucket/videos/

OUTPUT_URI

tos://your-bucket/keyframes/

FRAME_RATE

1.0

MODEL_PATH

/mnt/data/keyframe_model

注意

环境变量的 Key 大小写必须与算子广场保持完全一致,脚本内 os.getenv("...") 才能读到值;如果 Value 里包含空格或特殊字符,建议使用文本模式集中粘贴,避免 KV 单行输入被截断。

Step 4:向指定队列提交任务并指定入口命令

入口命令 中填入实际的执行语句。既然脚本已经挂到 /test/test.py,最直白的写法是:

python /test/test.py

在页面右侧的 资源 区域,选择 Step 1 中准备好的队列(例如 las-gpu-queue-a),并按需设置 Driver / Executor 的 CPU、内存与 GPU 数量。确认无误后点击 执行,任务实例会立刻进入队列排队。

Step 5:查看执行结果

任务每被触发一次,就会在「任务实例」页产生一条记录。可以从三个维度确认执行情况:

  • 实例状态Running / Succeeded / Failed;失败时鼠标悬停可看到简短原因。
  • 日志:点击「日志」查看 Driver / Executor 的标准输出与错误堆栈,用于定位脚本层面的报错。
  • Daft UI:Daft 类型任务可点击「Daft UI」跳转到 Daft Web 界面,查看 DAG、算子耗时、数据量分布等详细指标。

任务成功后,抽取结果会按 OUTPUT_URI 写回 TOS;用 tosutil ls tos://your-bucket/keyframes/ 或对象存储控制台确认产物文件即可。

Step 6:按业务调整参数与资源

跑通首个实例后,通常还需要根据业务规模做一轮调整。常见的调参方向如下:

调整维度

典型场景

调整位置

脚本参数

切换抽帧算法、加后处理逻辑

修改 test.py,重传 TOS 即可,不用改任务

环境变量

切换输入 / 输出桶、调节抽帧频率

任务详情 > 编辑 > 环境变量

资源规格

视频量增大后需要更多 GPU / 更大内存

点击「执行」时,在弹窗中调整 Driver / Executor 的 CPU / GPU / 内存

调度策略

需要每天凌晨定时抽帧

任务详情 > 高级设置 > 周期调度,配置生效时间与时间间隔

多任务编排

抽帧后要接特征提取、入库

在「工作流」中把多个任务串成 DAG,详见 工作流

相关文档
  • 队列管理:独占队列与计算队列的对比、创建与变配。
  • 开发机概述:算子代码调试环境的创建与使用。
  • 任务管理:任务基本信息、Daft / Python / Spark 三种任务类型的完整参数说明。
  • 工作流:多任务 DAG 编排与调度。
  • 存储挂载说明:TOS / vePFS / NAS 挂载的详细规则。
最近更新时间:2026.07.03 14:45:23
这个页面对您有帮助吗?
有用
有用
无用
无用