2025-01-31
微微怪时间不能保存情绪,保存那一切情绪所曾流连的境界。——《你是人间的四月天》
Apache Linkis 是一款由 Apache 基金会孵化的开源项目,它致力于在上层应用和底层数据计算引擎之间构建一层计算中间件。通过 Linkis,开发者可以轻松连接 Spark、Hive、Flink、Presto 等底层引擎,实现资源的统一管理、计算任务治理、脚本与数据的跨平台互通。它在数据计算平台中的应用广泛,被许多企业用作大数据处理的统一入口。
Linkis 的目标与优势
Linkis 的核心目标是解决复杂的计算资源管理问题。传统的大数据系统中,不同引擎之间通常存在高度耦合、复杂的调用关系,而 Linkis 通过提供 REST、WebSocket、JDBC 等标准接口将这些引擎解耦。这样一来,开发者只需面向 Linkis 进行统一操作,而无需直接对接各类底层计算引擎,大幅降低了系统的复杂性和运维成本。
Linkis 的优势包括:
- 多引擎支持:支持 Spark、Hive、Flink、Trino、Python 等多种计算引擎,适用于离线批处理、实时流处理、交互式查询等多种场景。
- 统一管理与编排:提供统一的任务路由、资源调度、流量控制、错误码管理等功能,实现对计算请求的精细化管控。
- 扩展性强:支持自定义 EngineConn(引擎连接器)来快速集成新的计算存储组件。
- 跨用户、跨系统资源管理:统一管理用户变量、函数、结果集、物料等资源,支持跨平台共享和引用。
Linkis 的核心特性
-
丰富的底层引擎支持
Linkis 支持多种计算存储引擎,包括 Spark、Hive、Presto、Trino、ElasticSearch、Flink 等,涵盖大多数主流的数据处理场景。 -
多语言兼容
支持 SparkSQL、HiveSQL、Python、Shell、Scala、FlinkSQL 等多种编程语言,满足不同团队的技术需求。 -
计算治理能力
Linkis 提供基于多级标签的任务路由、负载均衡、多租户管理、流量控制等功能,确保高效的任务执行与资源调度。 -
统一上下文和数据源管理
用户和系统的变量、UDF、数据源等在不同应用和引擎间自动同步,减少了手动配置和数据管理的复杂度。 -
错误码与问题定位
通过错误码系统,Linkis 提供常见错误的自动诊断和解决方案,方便用户快速排查问题。
Linkis 的架构
Linkis 基于微服务架构,分为计算治理服务、公共增强服务和微服务治理服务三大部分。
- 计算治理服务:负责管理计算任务的提交、准备和执行。
- 公共增强服务:提供上下文管理、数据源服务、物料管理等功能。
- 微服务治理服务:基于 Spring Cloud 生态,支持服务发现、网关路由、远程调用等功能。
架构图如下所示:
快速安装与部署
Linkis 提供多种部署方式,包括源码构建、Docker 镜像等。以下为常规的部署步骤:
1. 从源码编译
1 |
|
2. 使用 Docker 部署
可以通过官方脚本构建带有 MySQL JDBC 驱动的自定义 Docker 镜像:
1 |
|
更多详细步骤请参考快速安装部署文档。
引擎支持
Linkis 支持多种底层计算引擎及数据库,以下为部分支持的引擎类型:
引擎名 | 默认版本 | 是否包含在发布包中 | 说明 |
---|---|---|---|
Spark | Apache Spark 3.2.1 | 是 | 支持 SQL、Scala、Pyspark |
Hive | Apache Hive 3.1.3 | 是 | 支持 HiveQL |
Flink | Apache Flink 1.12.2 | 否 | 支持 FlinkSQL |
Presto | Presto 0.234 | 否 | 支持 Presto SQL |
Trino | Trino 371 | 否 | 支持 Trino SQL |
ElasticSearch | ElasticSearch 7.6.2 | 否 | 支持 SQL、DSL |
使用案例
Linkis 自 2019 年开源以来,已经在金融、电信、制造、互联网等多个行业落地应用。目前已有 700+ 企业和 1000+ 用户将其用于大数据平台的计算资源管理与调度。
典型应用场景包括:
- 统一计算入口:不同团队和应用可以通过 Linkis 统一访问各种底层引擎,减少重复开发。
- 任务编排与治理:通过 Linkis 实现对多租户任务的精细化管理和流量控制。
- 跨平台资源共享:用户和系统的资源变量、函数、UDF 在不同环境间自动同步,提升开发效率。
贡献与社区
Linkis 欢迎开发者贡献代码、文档和测试反馈。
你可以通过 GitHub 提交 Issue 或 Pull Request,或者加入社区微信群与其他用户交流。
详细的贡献指南请参见:贡献指引。
总结
Apache Linkis 是一款强大的计算中间件,适用于大数据平台的统一计算管理和资源调度。它通过简化底层引擎的调用方式,大幅降低了系统复杂性,帮助企业提升数据处理效率。如果你正在寻找一款高性能、易扩展的大数据平台组件,Linkis 是一个值得一试的选择。