【数据中台】开源项目(3)-Linkis

news/2024/7/10 20:52:07 标签: 开源, 数据中台, Linkis

关于 Linkis

      Linkis 在上层应用程序和底层引擎之间构建了一层计算中间件。通过使用Linkis 提供的REST/WebSocket/JDBC 等标准接口,上层应用可以方便地连接访问MySQL/Spark/Hive/Presto/Flink 等底层引擎,同时实现统一变量、脚本、用户定义函数和资源文件等用户资源的跨上层应用互通,以及通过REST标准接口提供了数据源管理和数据源对应的元数据查询服务。 作为计算中间件,Linkis 提供了强大的连通、复用、编排、扩展和治理管控能力。通过将应用层和引擎层解耦,简化了复杂的网络调用关系,降低了整体复杂度,同时节约了整体开发和维护成本。

     Linkis 自2019年开源发布以来,已累计积累了700多家试用企业和1000多位沙盒试验用户,涉及金融、电信、制造、互联网等多个行业。许多公司已经将Linkis 作为大数据平台底层计算存储引擎的统一入口,和计算请求/任务的治理管控利器。

     开源地址:GitHub - apache/linkis: Apache Linkis builds a computation middleware layer to facilitate connection, governance and orchestration between the upper applications and the underlying data engines.

核心特点

  • 丰富的底层计算存储引擎支持: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~2.4.7,

CDH >= 5.4.0,

(默认Apache Spark 2.4.3)

>=1.0.0_rc1

Spark EngineConn, 支持SQL, Scala, Pyspark 和R 代码。

Hive

Apache >= 1.0.0,

CDH >= 5.4.0,

(默认Apache Hive 2.3.3)

>=1.0.0_rc1

Hive EngineConn, 支持HiveQL 代码。

Python

Python >= 2.6,

(默认Python2*)

>=1.0.0_rc1

Python EngineConn, 支持python 代码。

Shell

Bash >= 2.0

>=1.0.0_rc1

Shell EngineConn, 支持Bash shell 代码。

JDBC

MySQL >= 5.0, Hive >=1.2.1,

(默认Hive-jdbc 2.3.4)

>=1.0.0_rc1

JDBC EngineConn, 已支持Mysql,Oracle,KingBase,PostgreSQL,SqlServer,DB2,Greenplum,DM,Doris,ClickHouse,TiDB,Starrocks,GaussDB和OceanBase, 可快速扩展支持其他有JDBC Driver 包的引擎, 如SQLite

Flink

Flink >= 1.12.2,

(默认Apache Flink 1.12.2)

>=1.0.2

Flink EngineConn, 支持FlinkSQL 代码,也支持以Flink Jar 形式启动一个新的Yarn 应用程序。

Pipeline

-

>=1.0.2

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

>=1.2.0

Presto EngineConn, 支持Presto SQL 代码。

ElasticSearch

ElasticSearch >=6.0

>=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架构

     Linkis 基于微服务架构开发,其服务可以分为3类:计算治理服务、公共增强服务和微服务治理服务。

  • 计算治理服务,支持计算任务/请求处理流程的3个主要阶段:提交->准备->执行。

  • 公共增强服务,包括上下文服务、物料管理服务及数据源服务等。

  • 微服务治理服务,包括定制化的Spring Cloud Gateway、Eureka、Open Feign。

     下面是Linkis的架构概要图: 

     基于Linkis 计算中间件,我们在大数据平台套件WeDataSphere 中构建了许多应用和工具系统,下面是目前可用的开源项目。

  • DataSphere Studio - 数据应用集成开发框架

  • Scriptis - 数据研发IDE工具

  • Visualis - 数据可视化工具

  • Schedulis - 工作流调度工具

  • Qualitis - 数据质量工具

  • MLLabis - 容器化机器学习notebook 开发环境


http://www.niftyadmin.cn/n/5233629.html

相关文章

Spring中的AOP思想

1 基本概念 1.1 关键概念 AOP 思想是和 Java 中的代理模式差不多,就是在不改变原有代码的情况下,对某些方法的功能进行增强。 其中关键的概念有:连接点、切入点、切面、通知; 连接点:需要被增强功能的方法&#xff0…

使用waitress与nginx在腾讯云上进行flask项目部署

1.首先介绍一下waitress与nginx是啥, Waitress: 类别: Waitress 是一个用于 Python Web 应用程序的 WSGI(Web Server Gateway Interface)服务器。WSGI 是 Python Web 应用程序和 Web 服务器之间的标准接口,允许开发人员…

2023.12.2 做一个后台管理网页(左侧边栏实现手风琴和隐藏/出现效果)

2023.12.2 做一个后台管理网页(左侧边栏实现手风琴和隐藏/出现效果) 网页源码见附件,比较简单,之前用很多种方法实现过该效果,这次的效果相对更好。 实现功能: (1)实现左侧边栏的手…

Qt基础之四十:Qt Installer Framework(QtIFW)的编译、使用和实现原理

一.编译 编译环境: 系统:Windows 10 专业版 64位 编译器:Visual Studio 2017 本文编译的是当前最新版本qt-installer-framework 4.6.1 源码下载地址:清华大学开源软件镜像站 解压后可以看到里面自带编译指导文件—INSTALL,INSTALL里明确了以下几点: 1.静态编译Qt Qt版…

centos上安装并持久化配置LVS

1 实验背景 1)系统版本:centos7.8 2)虚拟机:3个centos虚拟机,(其中一个做Director Server,另外两个做Real Server) 3) LVS大致有NAT ,DR ,Tun这三种模式,这里搭建一个典型的DR模式的LVS Direc…

基于PLC的采摘机械手系统(论文+源码)

1.系统设计 本次设计围绕基于PLC的采摘机械手系统进行设计, PLC即可编程控制器其是一种常见的微处理器,本次拟采用西门子是S7-200 PLC,一方面对整个设计从器件选型到I/O分配,图纸绘制等进行设计,另一方面还通过组态王…

版本控制系统Git学习笔记-Git分支操作

文章目录 概述一、Git分支简介1.1 基本概念1.2 创建分支1.3 分支切换1.4 删除分支 二、新建和合并分支2.1 工作流程示意图2.2 新建分支2.3 合并分支2.4 分支示例2.4.1 当前除了主分支,再次创建了两个分支2.4.2 先合并test1分支2.4.3 合并testbranch分支 2.5 解决合并…

hbase Master is initializing

问题如下: ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializingat org.apache.hadoop.hbase.master.HMaster.checkInitialized(HMaster.java:2452)at org.…