Linkis - 计算中间件


Apache-2.0
跨平台
Java

软件简介

Linkis是一个打通了多个计算存储引擎如:Spark、TiSpark、Hive、Python和HBase等,对外提供统一REST/WebSocket/JDBC接口,提交执行SQL、Pyspark、HiveQL、Scala等脚本的计算中间件。

Linkis基于微服务架构,提供了金融级多租户隔离、资源管控、权限隔离等企业级特性,支持统一变量、UDF、函数、用户资源文件管理,具备高并发、高性能、高可用的大数据作业/请求全生命周期管理能力。

基于Linkis计算中间件的架构设计理念,在上层构建了很多的应用系统。

  • 目前已开源的有: 数据研发IDE工具Scriptis

  • 即将开源的有: 数据可视化展示工具图形化工作流工具数据质量工具

核心特点:

  • 统一作业执行服务 :一个分布式的REST/WebSocket服务,用于接收用户提交的各种脚本请求。

目前支持的计算引擎有 :Spark、Python、TiSpark、Hive和Shell等。

支持的脚本语言有 :SparkSQL、Spark Scala、Pyspark、R、Python、HQL和Shell等;

  • 资源管理服务 : 支持实时管控每个系统和用户的资源使用情况,限制系统和用户的资源使用量和并发数,并提供实时的资源动态图表,方便查看和管理系统和用户的资源;

目前已支持的资源类型 :Yarn队列资源、服务器(CPU和内存)、用户并发个数等。

  • 应用管理服务 :管理所有系统的所有用户应用,包括离线批量应用、交互式查询应用和实时流式应用,为离线和交互式应用提供强大的复用能力,并提供应用全生命周期管理,自动释放用户多余的空闲应用;

  • 统一存储服务 :通用的IO架构,能快速对接各种存储系统,提供统一调用入口,支持所有常用格式数据,集成度高,简单易用;

  • 统一上下文服务 :统一用户和系统资源文件(JAR、ZIP、Properties等),用户、系统、计算引擎的参数和变量统一管理,一处设置,处处自动引用;

  • 物料库 :系统和用户级物料管理,可分享和流转,支持全生命周期自动管理;

  • 元数据服务 :实时的库表结构和分区情况展示。

与类似系统的对比:

Linkis跟Apache Livy和Apache Zeppelin
Interpreter的定位不一样,但是由于开源社区目前尚没有同类竞品,所以这里做一个简单对比供大家参考。


文档列表

Linkis快速安装使用文档

上层前端应用的HTTP接入文档

上层前端应用的WebSocket接入文档

Linkis架构文档

更多文档,请点我访问


Architecture:


RoadMap

1. Linkis管理台

  • 用户可以查看和管理自己的Job
  • 用户可以查看和管理自己的引擎
  • 用户可以查看Yarn的资源使用情况和用户资源使用排名
  • 用户可以配置引擎的启动参数
  • 用户可以设置变量

2. 支持标签功能

  • 支持给EngineManager打标签
  • 启动引擎时,支持为引擎打标签
  • 支持通过标签访问目标引擎

3. AppGovernance应用治理实现

  • 系统级、用户级应用全生命周期管理,包括离线批量、交互式查询和实时流式应用
  • 为离线和交互式应用提供复用能力和智能切换能力
  • 智能限流、应用智能保护

4. 支持Flink和Spark Structured Streaming

如果您有任何需求,欢迎给我们提issue,我们将会及时给您回复。