Apache SystemDS 3.4.0 介绍与选型指南

Apache SystemDS 3.4.0 介绍与选型指南:信息基准、机器学习系统概述、DML 与混合运行时架构、3.4.0 新特性、快速上手、适用场景与限制、与 Spark MLlib、Ray 的量化对比及官方参考链接。

Apache SystemDSApache SystemDS2026/10/18

Apache SystemDS 3.4.0 介绍与选型指南

一、信息基准

项目内容
查询日期2026-10-18
本次介绍版本Apache SystemDS 3.4.0(官网标注 3.4.0 为当前 stable;发行包目录时间戳 2026-07-24)
项目状态Apache 软件基金会顶级项目(TLP),许可证 Apache-2.0;由 Apache SystemML 更名而来
版本依据官网下载/文档导航(3.4.0 stable)、downloads.apache.org/systemds 目录(1.2.0 至 3.4.0 归档)、3.4.0 官方发行说明(Java 17 要求等)三方一致

官方来源清单(查询日期均为 2026-10-18):

来源地址用途
官方网站https://systemds.apache.org/项目门户与导航
官方下载页https://systemds.apache.org/download3.4.0 发行包
ASF 发行目录https://downloads.apache.org/systemds/发行归档与 KEYS
3.4.0 发行说明https://systemds.apache.org/release-notes/systemds-release-notes-3.4.0运行要求与新特性
官方文档https://systemds.apache.org/docs/3.4.0/ 与 https://apache.github.io/systemds/语言参考、安装与 API
GitHub 仓库https://github.com/apache/systemds源码与 README(定位描述)
快速上手https://apache.github.io/systemds/site/install.html安装、快速上手与 Hello World

二、软件概述

本文介绍的版本为 Apache SystemDS 3.4.0。Apache SystemDS 是 Apache 软件基金会的开源机器学习系统(官方 README 定位:面向端到端数据科学生命周期的 ML 系统),覆盖从数据准备与清洗、高效模型训练到调试与服务的完整链路。其前身是 Apache SystemML(IBM 研究院贡献,后成为 Apache 顶级项目),更名为 SystemDS 后扩展为更通用的 ML 系统形态。

它的核心特征是"声明式算法 + 自动混合执行":算法以类 R 语法的高级语言 DML(或 Python/Java API)描述,系统自动生成局部内存操作与分布式操作(基于 Apache Spark)的混合运行时计划,开发者无需手工改写算法即可在不同规模数据上执行;另有 GPU 与联邦学习后端。3.4.0 按官方发行说明完成 Java 17 基线切换并引入原生 Delta Lake I/O 与向量化执行等改进。

开源许可为 Apache-2.0。GitHub 仓库 stars 为 1,101(2026-10-18 GitHub 仓库页面实查,该数值随时间变动)。

三、核心架构与核心概念

3.1 语言层

  • DML(类 R 语法脚本):以矩阵为中心的声明式语言,内置大量矩阵/张量运算原语与统计函数;算法即脚本。
  • Python API 与 Java API:官方同时提供 Python(可经 PyPI 安装)与 Java API,便于在数据科学生态与 JVM 工程中嵌入。
  • 内置算法库:分类、回归、聚类、矩阵分解、生存分析等现成算法脚本,随发行包分发。

3.2 运行时层

  • 混合运行时计划(Hybrid Runtime Plan):系统对脚本做优化编译,自动决定每个操作在本地内存执行还是分布化到 Spark 集群执行(官方 README 表述)。
  • Spark 集成:分布式后端基于 Apache Spark,经 spark-submit 方式部署(官方发行说明提及 spark-submit 部署的参数要求)。
  • GPU 与联邦学习后端:官方 README 点名存在额外 GPU 与联邦学习后端。
  • 3.4.0 运行要求(官方发行说明):Java 17 必需;启动 JVM 需启用 Vector API(--add-modules=jdk.incubator.vector);自定义 Java 启动器与 spark-submit 部署须向每个 JVM 传递所需模块与包开放参数。

3.3 数据 I/O

矩阵与帧(Frame)数据结构;3.4.0 新增基于 Delta Kernel 的原生 Delta Lake 读写(含 Parquet 数据文件支持),配合既有 CSV/二进制等格式,衔接湖仓数据面。

四、功能特性

4.1 端到端数据科学生命周期

数据准备与清洗(以矩阵/帧表达的特征工程)、模型训练、调试与服务在同一定义体系内完成,减少多工具粘合。

4.2 自动混合执行

同一份算法脚本从单机内存自动扩展到 Spark 集群,规模变化不需要重写算法;编译期优化(操作融合、重计算策略等)由系统承担。

4.3 3.4.0 新特性(官方发行说明)

  • 原生 Delta Lake 读写器(基于 Delta Kernel + Parquet);
  • 向量化执行与优化的爱因斯坦求和(einsum)运算路径;
  • Scuro 多模态与时间序列处理能力扩展;
  • 新内置算法:LARS、缺失数据机制检测、隐马尔可夫模型(HMM)、HDBSCAN 等。

4.4 扩展与工程化

自定义函数与外部 Java UDF、 Federated 与 GPU 后端、与 Spark 生态(spark-submit)及湖仓格式(Delta Lake)衔接,适合嵌入 JVM 数据平台。

五、快速上手

以下路径引自官方 Quick Start(https://apache.github.io/systemds/site/install.html ,查询日期 2026-10-18),本文未做本地实测:

  1. 准备 Java 17 运行时(3.4.0 官方要求),并按需配置 --add-modules=jdk.incubator.vector(官方发行说明的 Runtime Requirements 节)。
  2. 从官方下载页获取 SystemDS 3.4.0 发行包并解压(或按官方 Install from source 文档从源码构建)。
  3. 编写一个最简 DML 脚本(类 R 语法的矩阵运算,如创建随机矩阵并求和/矩阵乘),保存为 hello.dml。
  4. 用发行包自带的 bin/systemds 启动脚本执行:./bin/systemds hello.dml,观察本地内存运行时输出。
  5. 数据规模扩大时按官方文档以 spark-submit 方式提交同一脚本,由系统自动生成混合运行时计划;Python 侧可经 PyPI 安装 systemds 包使用 Python API。

官方站点同时提供 sample notebook 与 Hello World 页面作为第一个示例的参照。

六、适用场景与限制

适用场景:

  • 算法研究与教学:声明式 DML 快速表达矩阵统计算法,自动获得分布式执行;
  • JVM 数据平台内嵌 ML 能力:Java/Scala 体系内以库形态提供模型训练与打分;
  • 中等规模数据的批量统计建模(特征工程 + 经典 ML),衔接 Spark 与 Delta Lake 湖仓;
  • 对多模态/时间序列(Scuro)与联邦学习方向有实验需求的团队。

限制(如实标注):

  • 深度学习生态弱于 PyTorch/TensorFlow 系工具链,定位是矩阵统计型 ML 系统而非通用 DL 框架;
  • Java 17 + Vector API 孵化模块的运行要求对老旧集群不友好(官方发行说明明示);
  • 社区体量小(stars 1,101,2026-10-18 实查),第三方教程与问题检索资源有限;
  • Python 体验以 API 嵌入为主,交互式科学计算生态(Notebook 插件、可视化)不如主流 Python ML 栈完整。

七、同类选型对比

7.1 对比对象与数据来源

对比 Spark MLlib 与 Ray(同为分布式 ML/计算系统)。stars 均取自各项目 GitHub 仓库页面 2026-10-18 页面实查;最近发版取自 GitHub Releases 订阅流与 Maven Central,查询日期均为 2026-10-18。

7.2 量化对比

维度Apache SystemDS 3.4.0Spark MLlib(Apache Spark 4.2.0)Ray 2.59.0
开源许可Apache-2.0Apache-2.0Apache-2.0
GitHub stars + 最近发版1,101;3.4.0(2026-07-24,dist 目录时间戳)44,237;4.2.0(Maven Central 实查;4.3.0 处于 RC,2026-10-12)44,059;Ray-2.59.0(2026-10-02)
版本节奏年度级大版本,3.x 线稳定推进季度级特性版本 + 多维护线并行月度级高频滚动
兼容矩阵Java 17 必需 + Vector API 模块参数,Spark 集群后端Spark 生态(Scala/Java/Python/SQL),多版本 JDK/集群管理器支持Python 优先,多后端(本地/集群/K8s 生态)
定位差异声明式 DML + 自动混合执行计划的 ML 系统Spark 内建分布式 ML 库,随大数据平台走通用分布式计算框架(RL/训练服务/调参等生态)

7.3 选型建议

一句话建议:已有 Spark 平台、要标准分布式 ML 就用 Spark MLlib(生态与社区最大),要做通用分布式计算与 RL/服务化选 Ray;只有当目标是"以声明式语言表达算法、自动混合本地与分布式执行"的 JVM 侧数据科学平台时,SystemDS 3.4.0 才是对口之选。

八、参考链接

链接说明
https://systemds.apache.org/项目官网
https://systemds.apache.org/download官方下载页(3.4.0 stable)
https://downloads.apache.org/systemds/ASF 发行目录与 KEYS
https://systemds.apache.org/release-notes/systemds-release-notes-3.4.03.4.0 官方发行说明
https://apache.github.io/systemds/site/install.html安装与快速上手
https://systemds.apache.org/docs/3.4.0/3.4.0 官方文档
https://github.com/apache/systemdsGitHub 仓库(stars 实查 1,101,2026-10-18)
https://repo1.maven.org/maven2/org/apache/spark/spark-core_2.13/Spark 版本元数据(4.2.0 实查)
https://github.com/apache/sparkSpark 仓库(对比数据实查)
https://github.com/ray-project/rayRay 仓库(对比数据实查)