一、软件概述
Apache Linkis 计算中间件项目,是由微众银行大数据平台团队在2019年7月进行开源,并于2021年8月正式捐献给全球顶级开源社区 Apache 软件基金会(ASF),成为 ASF 孵化项目。
Apache 软件基金会(ASF)孵化器于2022年12月03日,通过了 Apache Linkis 计算中间件项目的孵化毕业投票。
2023年01月18日,Apache 软件基金会官方宣布 Apache Linkis 顺利毕业,成为 Apache 顶级项目(TLP)。
Linkis 在上层应用程序和底层引擎之间构建了一层计算中间件。通过使用 Linkis 提供的 REST/WebSocket/JDBC 等标准接口, 上层应用可以方便地连接访问 MySQL/Spark/Hive/Presto/Flink 等底层引擎,同时实现变量、脚本、函数和资源文件等用户资源的跨上层应用互通。
作为计算中间件,Linkis 提供了强大的连通、复用、编排、扩展和治理管控能力。通过计算中间件将应用层和引擎层解耦,简化了复杂的网络调用关系, 降低了整体复杂度,同时节约了整体开发和维护成本。
Linkis 自 2019 年开源发布以来,已累计积累了 700 多家试验企业和 1000+沙盒试验用户,涉及金融、电信、制造、互联网等多个行业。 许多公司已经将 Linkis 作为大数据平台底层计算存储引擎的统一入口,和计算请求/任务的治理管控利器。
官网地址
中文资料
linkis/README_CN.md at master · apache/linkis · GitHub
https://github.com/apache/linkis
二、软件架构
Linkis 基于微服务架构开发,其服务可以分为 3 类:计算治理服务、公共增强服务和微服务治理服务。
- 计算治理服务,支持计算任务/请求处理流程的 3 个主要阶段:提交-> 准备-> 执行
- 公共增强服务,包括上下文服务、物料管理服务及数据源服务等
- 微服务治理服务,包括定制化的 Spring Cloud Gateway、Eureka、Open Feign
下面是 Linkis 的架构概要图. 更多详细架构文档请见 Linkis-Doc/Architecture.
三、核心特点
- 丰富的底层计算存储引擎支持:Spark、Hive、Python、Shell、Flink、JDBC、Pipeline、Sqoop、OpenLooKeng、Presto、ElasticSearch、Trino、SeaTunnel 等;
- 丰富的语言支持:SparkSQL、HiveSQL、Python、Shell、Pyspark、Scala、JSON 和 Java 等;
- 强大的计算治理能力: 能够提供基于多级标签的任务路由、负载均衡、多租户、流量控制、资源控制等能力;
- 全栈计算存储引擎架构支持: 能够接收、执行和管理针对各种计算存储引擎的任务和请求,包括离线批量任务、交互式查询任务、实时流式任务和数据湖任务;
- 统一上下文服务:支持跨用户、系统、计算引擎去关联管理用户和系统的资源文件(JAR、ZIP、Properties 等),结果集、参数变量、函数、UDF等,一处设置,处处自动引用;
- 统一物料: 提供了系统和用户级物料管理,可分享和流转,跨用户、跨系统共享物料;
- 统一数据源管理: 提供了Hive、ElasticSearch、Mysql、Kafka、MongoDB 等类型数据源信息的增删查改、版本控制、连接测试和对应数据源的元数据信息查询能力;
- 错误码能力:提供了任务常见错误的错误码和解决方案,方便用户自助定位问题;
四、引擎类型
引擎名 | 支持底层组件版本 (默认依赖版本) | Linkis 1.X 版本要求 | 是否默认包含在发布包中 | 说明 |
---|---|---|---|---|
Spark | Apache >= 2.0.0, CDH >= 5.4.0, (默认 Apache Spark 3.2.1) | >=1.0.3 | 是 | Spark EngineConn, 支持 SQL, Scala, Pyspark 和 R 代码 |
Hive | Apache >= 1.0.0, CDH >= 5.4.0, (默认 Apache Hive 3.1.3) | >=1.0.3 | 是 | Hive EngineConn, 支持 HiveQL 代码 |
Python | Python >= 2.6, (默认 Python2*) | >=1.0.3 | 是 | Python EngineConn, 支持 python 代码 |
Shell | Bash >= 2.0 | >=1.0.3 | 是 | Shell EngineConn, 支持 Bash shell 代码 |
JDBC | MySQL >= 5.0, Hive >=1.2.1, (默认 Hive-jdbc 2.3.4) | >=1.0.3 | 否 | JDBC EngineConn, 已支持ClickHouse, DB2, DM, Greenplum, kingbase, MySQL, Oracle, PostgreSQL 和 SQLServer,可快速扩展支持其他数据库组件, 如SQLite |
Flink | Flink >= 1.12.2, (默认 Apache Flink 1.12.2) | >=1.0.3 | 否 | Flink EngineConn, 支持 FlinkSQL 代码,也支持以 Flink Jar 形式启动一个新的 Yarn 应用程序 |
Pipeline | - | >=1.0.3 | 否 | Pipeline EngineConn, 支持文件的导入和导出 |
openLooKeng | openLooKeng >= 1.5.0, (默认 openLookEng 1.5.0) | >=1.1.1 | 否 | openLooKeng EngineConn, 支持用 Sql 查询数据虚拟化引擎 openLooKeng |
Sqoop | Sqoop >= 1.4.6, (默认 Apache Sqoop 1.4.6) | >=1.1.2 | 否 | Sqoop EngineConn, 支持 数据迁移工具 Sqoop 引擎 |
Presto | Presto >= 0.180, (默认 Presto 0.234) | >=1.2.0 | 否 | Presto EngineConn, 支持 Presto SQL 代码 |
ElasticSearch | ElasticSearch >=6.0, ((默认 ElasticSearch 7.6.2) | >=1.2.0 | 否 | ElasticSearch EngineConn, 支持 SQL 和 DSL 代码 |
Trino | Trino >=371 | >=1.3.1 | 否 | Trino EngineConn, 支持Trino SQL 代码 |
Seatunnel | Seatunnel >=2.1.2 | >=1.3.1 | 否 | Seatunnel EngineConn, 支持Seatunnel SQL 代码 |
五、应用关联
基于Linkis 计算中间件,在大数据平台套件WeDataSphere 中构建了许多应用和工具系统,下面是目前可用的开源项目。
六、软件部署
1、软件下载
上述地址下载比较慢,可以使用国内镜像地址下载apache-linkis-1.6.0安装包下载_开源镜像站-阿里云
2、单机部署
https://linkis.staged.apache.org/zh-CN/docs/latest/deployment/deploy-quick
注意:高版本与低版本部署方式不一样,查看官网请结合版本及软件内容部署