Apache Linkis是一种计算中间件,充当上层应用程序和底层引擎(例如Apache Spark、Apache Hive和Apache Flink )之间的层。它于 2021 年作为Apache 孵化器项目启动,并于 2023 年 1 月升级为顶级项目。
Linkis 通过提供 REST/WS/JDBC 等标准接口,方便 Tableau 或 Jupyter 等功能性应用程序访问计算和存储引擎。它还通过 REST 标准接口提供数据源和元数据管理服务。
Linkis 的主要优势之一是其灵活性。它促进了上层应用程序和各种引擎之间的连接,并减少了更改对下层的影响。它还具有分布式微服务架构,可以轻松扩展和添加新功能。
Linkis 还提供强大的任务/请求治理功能。它提供了一个基本的编排框架,以启用不同的策略来管理计算任务,并通过减少连接性和可扩展性所需的工作量来轻松开发功能性应用程序。能够提供细粒度的路由、负载均衡、多租户、流量控制、资源控制、双活、主备等编排策略,同时提供对底层访问的管理和控制引擎,包括身份验证、风险防范和记录保存。
每个任务分为四个阶段:提交阶段,将任务提交给入口服务;准备阶段,任务安排;执行阶段,任务被提交给底层引擎执行,结果返回阶段,将结果返回给调用者。
目前Linkis支持Spark、Hive、Flink、Python、Presto、ElasticSearch、JDBC等多种计算和存储引擎,未来会支持更多如Trino、SeaTunnel等。Linkis 还支持各种脚本语言,例如SparkSQL、HiveQL、Python、Pyspark、Scala和 JDBC。
此外,Linkis 拥有强大的资源管理能力。它ResourceManager可以为 Yarn 和 Linkis 管理资源EngineManager,并提供基于标签的多级资源分配和回收。这允许跨多个Yarn集群和多种计算资源类型的强大资源管理功能。
总之,Apache Linkis 是一个强大的计算中间件,它在上层应用程序和底层引擎之间提供了一个抽象层。它有助于轻松连接和访问不同的引擎和资源管理。Linkis 用于金融、银行、电信和互联网公司等多个行业。关于作者,Andrea 是 DXC Technology 的一名软件架构师。此前他曾在惠普工作。Andrea 目前专注于 Java、云原生应用程序和微服务。他对与计算机科学相关的各个方面(机器学习、区块链、边缘计算)充满热情。