Linkis

关注
义项:大数据计算中间件
Linkis

Linkis(Apache Linkis)是一款大数据计算中间件,在上层应用程序与底层计算存储引擎之间构建一层中间服务。上层应用通过它提供的 REST、WebSocket、JDBC 等标准接口连接 MySQL、Spark、Hive、Presto、Flink 等引擎,并实现变量、脚本、函数和资源文件等用户资源的跨应用互通[1]。该项目由微众银行大数据团队研发,2019 年 7 月开源,2023 年 1 月 18 日从 Apache 软件基金会孵化器毕业,成为 Apache 顶级项目[2]。

百科 图文
目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

Linkis 是一款大数据计算中间件,它的作用是在上层应用程序与底层计算存储引擎之间提供一层解耦服务[2]。借助 Linkis 提供的 REST、WebSocket、JDBC 等标准接口,上层应用无需各自维护引擎客户端环境,即可访问 MySQL、Spark、Hive、Presto、Flink 等底层引擎[1]。它同时提供数据源管理与元数据查询服务,并支持变量、脚本、函数和资源文件在应用之间互通[2]。

相对于单纯的连接网关,Linkis 更强调「计算治理」:它把不同类型、不同版本、不同集群的底层引擎与数量庞大的上层客户端之间的调用关系收敛到中间层统一处理[3]。项目发起人邸帅将其定位为解决复杂分布式环境下计算治理问题的中间件,通过解耦应用层与引擎层简化网络调用关系,降低整体复杂度并减少开发与运维成本[2]。

原理

Linkis 基于微服务架构构建,服务划分为三类:计算治理服务、公共增强服务和微服务治理服务[4]。计算治理服务负责任务或请求的核心流程,分为提交、准备、执行 3 个阶段;公共增强服务包括物料库服务、上下文服务和数据源服务;微服务治理服务则包含定制的 Spring Cloud Gateway、Eureka 与 Open Feign,负责路由、服务注册发现和远程调用框架[4]。

在作业层面,统一入口(Entrance)管理单个引擎作业的完整生命周期,从接收作业、提交给执行引擎、回传执行信息到作业结束;引擎管理器(EngineManager)负责引擎的全生命周期,向资源管理服务申请和锁定资源、实例化新引擎并监控其状态;执行引擎才是真正执行用户作业的微服务,由引擎管理器启动[5]。网关基于 Spring Cloud Gateway 做了插件化增强,用于解析并转发用户请求到指定微服务[5]。

资源管理方面,资源管理器不仅管理 Yarn 与 Linkis 引擎管理器的资源,还提供基于标签的多级资源分配与回收,从而具备跨多个 Yarn 集群、跨多种计算资源类型的调度能力[1]。统一上下文服务为每个任务或请求生成上下文标识,把用户与系统的资源文件、结果集、参数变量、函数等关联起来,实现「一处设置,处处自动引用」[1]。

发展历程

Linkis 由微众银行大数据平台团队研发,2019 年 7 月在 GitHub 与 Gitee 上对外开源,最初版本为 0.5.0[6]。2021 年 8 月 2 日,该项目通过 Apache 软件基金会(ASF)的投票决议,成为 ASF 孵化器项目,也是微众银行第二个进入 ASF 的项目[7]。

在孵化期内,社区由开发者主导发布了 7 个 Apache 版本,平均约两个月发布一次;新增 4 名 PPMC 成员和 13 名 Committer,贡献人数达到 127 人[8]。2022 年 12 月 3 日,ASF 孵化器通过 Linkis 的孵化毕业投票;2023 年 1 月 18 日,ASF 宣布其毕业成为 Apache 顶级项目[2]。

版本演进方面,项目从最早的 0.5.0 版本发展到 1.x 系列,期间陆续对接 Presto、ElasticSearch、Flink 等底层引擎,并新增上下文服务与计算编排等特性[6]。1.0 版本对服务架构做了重新划分,把计算治理服务拆解为提交、准备、执行 3 个阶段,以强化对用户任务的执行、管理与管控能力[4]。

应用

Linkis 可作为大数据平台底层计算存储引擎的统一入口,把来自不同上层工具的作业汇聚到同一层进行治理[1]。批量系统可以把它当作统一的网关或 JobServer 来提交批量任务;数据分析类工具则可利用其交互式任务能力实时获取日志、结果集与进度信息[8]。

在引擎与语言支持上,Linkis 覆盖 Spark、Hive、Flink、Python、Sqoop、openLooKeng、Presto、ElasticSearch、JDBC、Shell 等计算存储引擎,支持 SparkSQL、HiveQL、Python、Shell、Pyspark、Scala 等脚本语言[8]。接受的任务类型包括离线批量任务、交互式查询任务、实时流式任务和数据湖任务[8]。

Linkis 是开源大数据平台套件 WeDataSphere 的核心组件,该套件中基于它构建的工具包括一站式数据应用开发管理门户 DataSphere Studio、数据开发 IDE 工具 Scriptis、工作流调度工具 Schedulis、数据质量工具 Qualitis 和数据可视化工具 Visualis 等。在产业侧,项目已积累 700 多家试验企业和 1000 以上沙盒试验用户,涉及金融、银行、电信、制造、互联网等行业[1]。

局限

Linkis 的定位是连接与治理,本身不是计算引擎或存储系统,实际的计算仍由 Spark、Hive、Flink 等被接入的引擎完成,因此其能力边界受所支持引擎范围的限制[1]。不同引擎在特定版本上还有版本要求或仍处于支持中状态,例如 Impala、MLSQL、TiSpark 等在一段时期内属于「ongoing」而非已完成适配,选型时需要核对版本矩阵[1]。

架构上,Linkis 依赖 Spring Cloud Gateway、Eureka、Open Feign 等微服务组件,部署与运维需要维护多个微服务集群,复杂度高于单一进程的作业提交客户端[5]。其在项目孵化期间主要面向 OLAP 与流式引擎,对 OLTP 引擎的支持仍在规划中,容器化也是当时尚未完成的发展方向[3]。

参见

  • Apache Spark —— Linkis 支持接入的分布式计算引擎之一,常用于离线批量与交互式分析任务。

  • Apache Hive —— Linkis 支持接入的数据仓库引擎,对应 HiveQL 脚本执行。

  • Apache Flink —— Linkis 支持接入的流式计算引擎,对应实时流式任务。

  • Apache 软件基金会 —— Linkis 于 2021 年进入其孵化器,并于 2023 年毕业成为顶级项目。

  • 微众银行 —— Linkis 项目的发起方与最初的开源主体。

参考资料

  1. Linkis [引用日期2026-10-14]
  2. apache.org 上的网页 [引用日期2026-10-14]
  3. 查看源 [引用日期2026-10-14]
  4. Introduction | Apache Linkis [引用日期2026-10-14]
  5. Linkis 简述 | Apache Linkis [引用日期2026-10-14]
  6. 全票通过!微众开源项目Linkis进入Apache孵化 [引用日期2026-10-14]
  7. 微众银行计算中间件开源项目Linkis进入Apache孵化 [引用日期2026-10-14]
  8. ITPUB专访|开源Apache Linkis:上层应用与底层引擎之间的计算中间件 [引用日期2026-10-14]
词条评价
词条统计

浏览次数:2 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-13T20:43:46Z

历史版本

本条目引用的词条
Apache Spark Apache Hive Apache Flink Apache 软件基金会 微众银行