当前位置: 首页 > 软件库 > 大数据 > 数据存储 >

Linkis

计算中间件
授权协议 Apache-2.0
开发语言 Java Python Scala SHELL
所属分类 大数据、 数据存储
软件类型 开源软件
地区 国产
投 递 者 周洋
操作系统 跨平台
开源组织 Apache
适用人群 未知
 软件概览

Linkis 在上层应用程序和底层引擎之间构建了一层计算中间件。通过使用Linkis 提供的REST/WebSocket/JDBC 等标准接口,上层应用可以方便地连接访问MySQL/Spark/Hive/Presto/Flink 等底层引擎,同时实现变量、脚本、函数和资源文件等用户资源的跨上层应用互通,以及通过REST标准接口提供了数据源管理和数据源对应的元数据查询服务。 作为计算中间件,Linkis 提供了强大的连通、复用、编排、扩展和治理管控能力。通过计算中间件将应用层和引擎层解耦,简化了复杂的网络调用关系,降低了整体复杂度,同时节约了整体开发和维护成本。
Linkis 自2019年开源发布以来,已累计积累了700多家试验企业和1000+沙盒试验用户,涉及金融、电信、制造、互联网等多个行业。许多公司已经将Linkis 作为大数据平台底层计算存储引擎的统一入口,和计算请求/任务的治理管控利器。

没有Linkis 之前

有了Linkis 之后

核心特点#

  • 丰富的底层计算存储引擎支持
    目前支持的计算存储引擎:Spark、Hive、Flink、Python、Pipeline、Sqoop、openLooKeng、JDBC和Shell等。
    正在支持中的计算存储引擎:Presto(计划1.2.0)、ElasticSearch(计划1.2.0)等。
    支持的脚本语言:SparkSQL, HiveQL, Python, Shell, Pyspark, R, Scala 和JDBC 等。
  • 强大的计算治理能力。基于Orchestrator、Label Manager和定制的Spring Cloud Gateway等服务,Linkis能够提供基于多级标签的跨集群/跨IDC 细粒度路由、负载均衡、多租户、流量控制、资源控制和编排策略(如双活、主备等)支持能力。
  • 全栈计算存储引擎架构支持。能够接收、执行和管理针对各种计算存储引擎的任务和请求,包括离线批量任务、交互式查询任务、实时流式任务和存储型任务;
  • 资源管理能力。 ResourceManager 不仅具备对 Yarn 和 Linkis EngineManager 的资源管理能力,还将提供基于标签的多级资源分配和回收能力,让 ResourceManager 具备跨集群、跨计算资源类型的强大资源管理能力。
  • 统一上下文服务。为每个计算任务生成context id,跨用户、系统、计算引擎的关联管理用户和系统资源文件(JAR、ZIP、Properties等),结果集,参数变量,函数等,一处设置,处处自动引用;
  • 统一物料。系统和用户级物料管理,可分享和流转,跨用户、系统共享物料。
  • 统一数据源管理。提供了hive、es、mysql、kafka类型数据源的增删查改、版本控制、连接测试等功能。
  • 数据源对应的元数据查询。提供了hive、es、mysql、kafka元数据的数据库、表、分区查询。

支持的引擎类型#

引擎名 支持底层组件版本
(默认依赖版本)
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 和HiveQL,可快速扩展支持其他有JDBC Driver 包的引擎, 如Oracle
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 引擎
Impala Impala >= 3.2.0, CDH >=6.3.0 ongoing - Impala EngineConn,支持Impala SQL 代码
Presto Presto >= 0.180 1.2.0 - Presto EngineConn, 支持Presto SQL 代码
ElasticSearch ElasticSearch >=6.0 1.2.0 - ElasticSearch EngineConn, 支持SQL 和DSL 代码
TiSpark 1.1 ongoing - TiSpark EngineConn, 支持用SparkSQL 查询TiDB

下载#

请前往Linkis releases 页面 下载Linkis 已编译的部署安装包或源码包。

安装部署#

请参考安装部署文档 来部署Linkis

示例和使用指引#

文档#

完整的Linkis文档代码存放在linkis-website仓库中

架构概要#

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

  • 计算治理服务,支持计算任务/请求处理流程的3个主要阶段:提交->准备->执行;
  • 公共增强服务,包括上下文服务、物料管理服务及数据源服务等;
  • 微服务治理服务,包括定制化的Spring Cloud Gateway、Eureka、Open Feign。

下面是Linkis 的架构概要图. 更多详细架构文档请见 Linkis/Architecture. architecture

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

wedatasphere_stack_Linkis

更多项目开源准备中,敬请期待。

贡献#

我们非常欢迎和期待更多的贡献者参与共建Linkis, 不论是代码、文档,或是其他能够帮助到社区的贡献形式。

代码和文档相关的贡献请参照贡献指引

联系我们#

对Linkis 的任何问题和建议,敬请提交issue,以便跟踪处理和经验沉淀共享。

Meetup 视频 Bilibili

谁在使用Linkis#

我们创建了一个 issue 以便用户反馈和记录谁在使用Linkis。
Linkis 自2019年开源发布以来,累计已有700多家试验企业和1000+沙盒试验用户,涉及金融、电信、制造、互联网等多个行业。

  • 关键名词 LinkisMaster:Linkis的计算治理服务层架中的管理服务,主要包含了AppManager、ResourceManager、LabelManager等几个管控服务。原名LinkisManager服务 。 Entrance:计算治理服务层架中的入口服务,完成任务的调度、状态管控、任务信息推送等功能 。 Orchestrator:Linkis的编排服务,提供强大的编排和计算策略能力

  • Linkis 在上层应用程序和底层引擎之间构建了一层计算中间件。通过使用Linkis 提供的REST/WebSocket/JDBC 等标准接口,上层应用可以方便地连接访问MySQL/Spark/Hive/Presto/Flink 等底层引擎,同时实现变量、脚本、函数和资源文件等用户资源的跨上层应用互通,以及通过REST标准接口提供了数据源管理和数据源对应的元数据查询服务。 作为计算中间件,Link

  • # 上传驱动包mysql-connector-java-8.0.18.jar 到服务器/usr/share/java目录 sudo mkdir -p 【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】 浏览器打开:qq.cn.hn/FTf 免费领取 /usr/share/java 3、安装Python 安装依赖环境 yum -y install zlib-de

  • 遇到问题,可参看我的另一篇博客“linkis和scripts使用中遇到问题解决办法” Linkis安装教程: 软件准备: ① wedatasphere-linkis-0.9.0-dist-spark2.1.tar.gz https://pan.baidu.com/s/1fJEMJ46YKKRokm-dLyc4rQ ② jdk-8u201-linux-x64.tar.gz https://pan.b

 相关资料
  • 我正试图在RoR上创建一个计算时间的应用程序。 当您按下开始按钮时,它会拉Time.now,然后,当您按下停止时,它会再次拉Time.now,然后计算两者之间的时间量。然后它会通过to_i将给定的秒转换为整数,然后将整数秒计算为小时:分钟:秒 然而,我的代码出了点问题,它不停地抛出一个又一个错误。 当前顺序为 nil:NilClass 的“未定义方法 '-'”

  • 问题内容: 我有一条流经多个系统的消息,每个系统都会记录消息的进入和退出以及时间戳和uuid messageId。我通过以下方式提取所有日志: 结果,我现在有以下事件: 我想生成一个报告(最好是堆积的条或列),用于每个系统的时间: 做这个的最好方式是什么?Logstash过滤器?kibana计算字段? 问题答案: 您只能使用Logstash 过滤器来实现此目的,但是,您必须实质性地重新实现该过滤器

  • 我尝试计算一个名为< code>median的向量的中值: 这很好。但是我需要得到中间值在原始向量中的位置。我怎样才能做得很快?

  • 本文向大家介绍java计算两个日期中间的时间,包括了java计算两个日期中间的时间的使用技巧和注意事项,需要的朋友参考一下 java计算两个日期中间的时间 其中在数据库中有一个字段为datetime类型,想要计算两个日期之间过了多少天 多少小时 多少分钟。 思路为把时间换算为毫秒(与协调世界时 1970 年 1 月 1 日午夜之间的时间差(以毫秒为单位测量)。然后利用毫秒的加减计算。 计算如下: