计算中间件-ApacheLinkis
Apache Linkis 计算中间件项目,是由微众银行大数据平台团队在 2019 年 7 月进行开源,并于 2021 年 8 月正式捐献给全球顶级开源社区 Apache 软件基金会(ASF),成为 ASF 孵化项目,在 2022 年 12 月 03 日通过孵化毕业投票。它在上层应用程序和底层引擎之间构建了一层计算中间件。通过使用 Linkis 提供的 REST/JDBC/Shell 等标准接口,上层应用可以方便地连接访问 MySQL/Spark/Hive/Trino/Flink 等底层引擎,同时实现变量、脚本、函数和资源文件等用户资源的跨上层应用互通,以及通过 REST 标准接口提供了数据源管理和数据源对应的元数据查询服务。作为计算中间件,Linkis 提供了强大的连通、复用、编排、扩展和治理管控能力。通过计算中间件将应用层和引擎层解耦,简化了复杂的网络调用关系,降低了整体复杂度,同时节约了整体开发和维护成本。主要采用Java开发并在ApacheV2.0协议下授权使用。

自开源以来,开源社区群用户总数超 7600 人,沙箱累计试用公司超 2600 家,收到超过 110 家企业已投入生产的反馈,生产环境支撑的数据量超 400PB,生产服务的用户超 5000 人,涉及金融、电信、制造、互联网等多个行业。许多公司已经用 Linkis 来解决大数据平台连通、扩展、管控、编排等计算治理问题。

在2022年的孵化期间,由社区开发者主导发布了 7 个 Apache 版本,平均约两个月就会发布一个版本;新加入了 4 个 PPMC 成员 和 13 个 Committers,来自不同的公司和团队,贡献人数达到 127 人。Apache Linkis 社区各项指标发展良好,项目已经趋于成熟, 其 顺利通过 ASF 孵化器项目管理委员会的毕业评估和投票,并得到 ASF 董事会批准,毕业晋升为 Apache 基金会顶级项目。
Linkis 基于微服务架构开发,其服务可以分为 3 类:计算治理服务、公共增强服务和微服务治理服务。
计算治理服务,支持计算任务 / 请求处理流程的 3 个主要阶段:提交 -> 准备 -> 执行;
公共增强服务,包括上下文服务、物料管理服务及数据源服务等;
微服务治理服务,包括定制化的 Spring Cloud Gateway、Eureka、Open Feign。
下面是 Linkis 的架构概要图。更多详细架构文档请见 Linkis/Architecture。

核心功能及Roadmap
通过使用 Linkis,上层应用工具如批量系统可以把 Linkis 作为统一的网关或者 JobServer 来提交批量任务;数据分析工具可以利用 Linkis 的交互式任务的能力实时获取日志、结果集、进度信息等能力。集成了 Linkis 的工具可以做到互联互通,在不同的工具中可以使用同一个定义的 UDF、数据源、物料等。
接入了 Linkis 的上层应用工具都可以拥有以下核心功能特性:
丰富的底层计算存储引擎支持:Spark、Hive、Flink、Python、Sqoop、OpenLooKeng、Presto、Trino、ElasticSearch、JDBC、SeaTunnel 和 Shell 等;
丰富的语言支持:SparkSQL、HiveQL、Python、Shell、Pyspark、Scala、JSON 和 JAVA 等;
强大的计算治理能力:能够提供基于多级标签的任务路由、负载均衡、多租户、流量控制、资源控制等能力;
全栈计算存储引擎架构支持:能够接收、执行和管理针对各种计算存储引擎的任务和请求,包括离线批量任务、交互式查询任务、实时流式任务和数据湖任务;
统一上下文服务:支持跨用户、系统、计算引擎去关联管理用户和系统的资源文件(JAR、ZIP、Properties 等),结果集、参数变量、函数、UDF 等,一处设置,处处自动引用;
统一物料:提供了系统和用户级物料管理,可分享和流转,跨用户、跨系统共享物料;
统一数据源管理:提供了 Hive、ElasticSearch、Mysql、Kafka、MongoDB 等类型数据源信息的增删查改、版本控制、连接测试和对应数据源的元数据信息查询能力;
错误码能力:提供了任务常见错误的错误码和解决方案,方便用户自助定位问题;
从孵化器毕业也证明了 Linkis 项目和社区进一步走向成熟,但是要成为一个世界顶级的计算中间件项目还有很多的事情要做。Linkis 社区整理了一份 Roadmap ,欢迎参与贡献。部分重大特性如下:

生态
Linkis 作为计算中间件,也积极推动与多个开源社区的项目进行集成,以丰富 Linkis 的生态。下图是部分已经与 Linkis 集成的开源项目,涵盖了数据分析、工作流、数据交换、数据质量、机器学习、以及常用的计算和存储引擎等。上层应用工具通过 Linkis 提交和管理各类引擎的任务,把 Linkis 当成了一个开发基座。极大地降低了上层应用工具在连通、扩展、管控等计算治理方面的开发工作量,让上层应用工具只需专注于其自身的功能性需求。

未来也将进一步引导和推动更多的上层工具系统和底层引擎,去与 Linkis 对接集成,丰富 Linkis 的生态。欢迎越来越多的项目参与其中。
最新版本:1.8
v1.8.0 版本已于2025年11月上旬发布。本次版本主要新增如下特性功能:Linkis 任务支持事前和事后诊断、数据源展示支持 Ranger,支持 Azure 对象存储、数据源管理支持 Oracle 和 PostgreSQL 功能优化、Token 过期策略优化,支持 OAuth2 身份认证、修复了一些安全问题。可做如下简介:
任务事前诊断和 bad job 拦截支持和任务事后诊断报告
数据源展示支持 Ranger
支持 Azure 对象存储
数据源管理支持 Oracle 和 PostgreSQL
Token 过期策略优化
在任务管理界面增加产看 UDF 日志栏
新增 OAuth2 身份认证支持
修复使用 JDBC 方式连接 mysql 安全漏洞
修复极端情况下日志文件可能暴露 hive 配置密码安全漏洞
修复容器化配置文件中使用不安全 Token 配置问题
新特性
任务事前诊断和 bad job 拦截支持和任务事后诊断报告
数据源展示支持 Ranger 权限管理
支持 Azure 对象存储
在任务管理界面增加产看 UDF 日志栏
新增 OAuth2 身份认证支持
功能增强
数据源管理支持 Oracle 和 PostgreSQL 功能优化
Token 过期策略优化
修复功能
修复使用 JDBC 方式连接 mysql 安全漏洞
修复极端情况下日志文件可能暴露 hive 配置密码安全漏洞
修复容器化配置文件中使用不安全 Token 配置问题
更多详情可查看此处。
项目主页:
https://linkis.apache.org/