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被用于不同的行业,从金融、银行、电信和互联网公司。