Linkis(微服务架构)
v0.11.0 官方版- 软件大小:11.9 MB
- 更新日期:2021-01-29 15:22
- 软件语言:简体中文
- 软件类别:服务器区
- 软件授权:免费版
- 软件官网:待审核
- 适用平台:WinXP, Win7, Win8, Win10, WinAll
- 软件厂商:
软件介绍 人气软件 下载地址
Linkis可以帮助用户搭建数据处理服务,配置设备通讯服务,可以在软件管理统计存储服务,可以统一上下文、可以在软件管理物料库,通过建立Linkis任意桥就可以与多种服务平台执行数据交互,可以将你的数据传输到数据库,可以在多种设备之间读取数据,提供应用管理服务、资源管理服务,可以在软件建立工作平台,可以查看自己的工作项目,可以配置多种引擎,可以查看资源使用排名,适合需要建立数据服务平台的用户使用;Linkis允许用户配置工作流程,可以在软件查看设备工作进度,可以远程读取设备工作数据,如果你需要搭建微服务平台就下载这款软件!
软件简介
Linkis是一个打通了多个计算存储引擎如:Spark、TiSpark、Hive、Python和HBase等,对外提供统一REST/WebSocket/JDBC接口,提交执行SQL、Pyspark、HiveQL、Scala等脚本的计算中间件。
Linkis基于微服务架构,提供了金融级多租户隔离、资源管控、权限隔离等企业级特性,支持统一变量、UDF、函数、用户资源文件管理,具备高并发、高性能、高可用的大数据作业/请求全生命周期管理能力。
软件功能
统一作业执行服务:一种分布式REST / WebSocket服务,用于处理来自用户的脚本执行请求。
到目前为止可用的计算引擎:Spark,Python,TiSpark,Hive和Shell。
到目前为止可用的语言:SparkSQL,Spark Scala,PySpark,R,Python,HQL和Shell。
资源管理服务:可从系统和用户的数量和负载两个角度实时控制/限制资源使用。借助动态的资源统计图,可以方便地监视和管理系统和用户的资源使用情况。
到目前为止可用的资源类型:纱线队列资源,服务器(CPU和内存),每个用户的并发实例数。
应用程序管理服务:管理全局用户应用程序,包括脱机批处理应用程序,交互式查询应用程序和实时流应用程序。它还具有强大的可重用性,尤其是对于脱机和交互式应用程序而言,具有完整的生命周期管理功能,可自动为用户释放空闲的应用程序。
统一存储服务:通用IO体系结构可以与各种存储系统快速集成,并提供统一的可调用入口。它还与大多数常用数据格式高度集成,并且易于使用。
统一上下文服务:统一用户和系统的资源文件(JAR,ZIP,属性)。通过对用户,系统和引擎的参数/变量进行统一管理,可以实现在随机位置的修改将自动反映在所有其他位置。
物料库:系统和用户级物料管理,能够共享,传输物料和自动生命周期管理。
元数据服务:实时显示数据集表结构和分区。
软件特色
资源管理
1.类型丰富,包括服务器CPU和内存、yarn、磁盘10和流量等
2.系统(项目)级资源管理
3.用户级资源管理
4.实时展示资源使用情况
多引擎支持
Spark、 Python、 TiSpark、hive和 Shel等
实时进度/日志
1.支持实时展示任务的运行进度
2.详细准确的实时日志推送
自定义变量
全局的自定义变量,一处定义,处处可用
上下文
1、资源文件(JAR/ZIP/Properties等)统一
2、用户引擎参数、变量集中管理
3、提供统一的上下文SDK
应用管理
1.为用户智能选取合适的引擎
2.提供引擎复用能力
3.提供引擎切换能力,实现快速执行
智能优化
1.历史复用能力(存在相同历史任务,则规则化复用历史结果)
2.智能重试(系统内部错误触发重试,计算引擎错误智能重试)
错误码
执行失败时,提供对用户友好的错误码和描述
多租户
系统级/用户级多租户隔离
结果集
1.多结果集支持
2.结果集输出元数据(co lumnName, co lumnType、 comment)信息
非功能性
1.高可用、高可靠、高并发支持
2.分布式、用户无感知的扩展能力
使用说明
如何使Linkis适应新的计算或存储引擎
1.简介
除了直接使用Linkis开发的引擎外,后端开发人员还可以根据自己的需求开发自己的应用程序。 分为入口模块,引擎管理器模块和引擎模块,可以轻松拆分应用程序以适应Linkis。 这三个模块的目的和架构请参考Linkis Archetect Design DocsUJES架构设计文档。
2.声明
Linkis使用Spring框架作为基础技术。 因此,必须遵守Spring的开发规范。
Linkis具有弹性的基础结构,并为其几乎所有顶级接口提供通用的实现。 如果用户需要定制的类,则可以直接注入它们并替换当前的实现。
2.1入口模块适配
1)Maven依赖
2)要实现的接口
入口中没有强制性界面。 下面的接口可以按需实现。
EntranceParser。 用于解析从前端到持久性Task的请求映射。 已经提供了AbstractEntranceParser类,并且仅需要重写parseToTask方法。 Linkis提供CommonEntranceParser作为默认实现。
EngineRequester。 用于构建RequestEngine对象,该对象可用于从EngineManager请求新引擎。
调度程序。 用于计划任务。 默认实现为多用户情况提供并行模式,为单用户模式提供FIFO模式。 建议不要在没有特殊用途的情况下进行自定义。
2.2 EngineManager模块适配
1)Maven依赖
2)要实现的接口
需要在EngineManager中实现以下接口:
EngineCreator。需要在现有的AbstractEngineCreator中重写方法createProcessEngineBuilder来创建EngineBuilder。在这里,ProcessEngineBuilder已经提供了一个名为JavaProcessEngineBuilder的类,该类是一个抽象类,用于完成对类路径,JavaOpts,GC文件路径和日志路径的配置,并在测试模式下打开DEBUG端口。要实现JavaProcessEngineBuilder,只需指定额外的类路径和JavaOpts。
EngineResourceFactory。需要在现有的AbstractEngineResourceFactory中重写方法getRequestResource,以声明用户自定义的资源要求。
资源。一个用于将资源注册到RM的Spring bean。用户需要指定一个ModuleInfo实例进行依赖项注入。
以下接口/ bean在EngineManager中是可选的:
钩子。一个Spring bean,用于在引擎启动过程中添加前后钩子。用户需要在EngineHook []钩子类型中声明一个Spring bean,以使新的钩子有效。
2.3发动机模块适配
1)Maven依赖
2)要实现的接口
需要在Engine中实现以下接口:
EngineExecutorFactory。用于通过实现方法createExecutor从地图构建EngineExecutor。该映射包含环境变量和引擎参数。
EngineExecutor。实际执行程序执行从入口提交的代码。需要实现的方法:1. getActualUsedResources(引擎实际使用的资源)2. executeLine(执行由CodeParser解析的代码行)3. executeCompletely(executeLine的补充方法。如果executeLine返回ExecuteIncomplete,则新代码为与先前的代码一起提交给引擎)
以下接口/ bean在引擎中是可选的:
engineHooks:Array [EngineHook],一个Spring bean,用于在引擎启动过程中添加前后挂钩。当前,系统提供2个钩子:用于UDF /函数加载的CodeGeneratorEngineHook和用于释放备用引擎的ReleaseEngineHook。系统仅默认情况下注册engineHooks = Array(ReleaseEngineHook)。
CodeParser。用于将代码解析为行,并仅针对每个执行循环提交一行。默认情况下,系统注册CodeParser一次返回所有代码。
EngineParser。用于将RequestTask转换为Scheduler可接受的Job。如果未指定,则系统将注册EngineParser,该引擎将RequestTask转换为CommonEngineJob。
Linkis WebSocket API文档
1.总结
Linkis通过WebSocket提供了一种适应方法,以方便功能应用程序的前端。
数据开发IDE工具Scriptis结合了两种方法来适应Linkis。 在正常情况下,它通过websocket与Linkis通信,并在Websocket连接断开时故障转移到HTTP协议。
2.1 API规格
Linkis定义了自己的前端后端规格。
1).URL规范
rest_j表示API符合Jersey标准
rest_s表示API符合springMVC Rest标准
v1是服务的版本,该版本将随Linkis版本一起升级
{applicationName}是微服务名称
2)。要求规格
3)。响应规格
方法:返回请求的Restful API URL,主要由websocket协议使用。
status:返回状态信息,-1表示登录失败,0表示成功,1表示错误,2表示验证失败,3表示没有权限。
数据:返回详细数据。
message:返回请求的提示信息。 如果状态不为0,则此消息返回错误消息。 同时,“数据”可能会在其“堆栈”列中返回堆栈信息。
2.2WebSocket API说明
1)。建立连接
用于与Linkis建立WebSocket连接。
API / api / rest_j / entrance / connect
HTTP方法GET
状态码101
2)。请求执行
用于将用户作业提交给Linkis以执行。
API / api / rest_j / entrance / execute
HTTP方法POST
样本Json请求主体
请求主体数据的参数说明
表1参数说明
样本Json响应主体
execID是提交给Linkis后为每个用户任务生成的String类型的唯一ID。 它仅在执行期间使用,例如PID。 execID的格式为(requestApplicationName的长度)(executeAppName的长度)(实例的长度)requestApplicationName {executeApplicationName} entranceInstanceinfomationip + port {requestApplicationName} $ {umUser} $ {index}
taskID是数据库为每个任务递增生成的Long类型的唯一ID。
3)。任务状态,日志和进度的推送机制
提交后,状态,日志和进度信息将由服务器推送。 可以通过websocket协议检索它们。 该API与下面提到的HTTP协议一致。 唯一的区别是websocket的模式为ws://,但对于HTTP协议为http://。
WebSocket API的示例响应
日志
状态
进展
人气软件
-
Serv-U FTP Server 10.5.0.24 简体中文 15.00 MB
/多国语言 -
xmanager7(FTP软件) 161.0 MB
/简体中文 -
HaneWin NFS Server v1.1.69 汉化注册版 0.68 MB
/简体中文 -
手机架设服务器 Servers Ultimate Pro v6.3.10 汉化版 7.00 MB
/简体中文 -
e-Border Driver(socks5代理工具) 3.6 MB
/简体中文 -
HTS Http File Server(HTTP文件服务器) 1.91 MB
/简体中文 -
SecureCRT 64位 32.4 MB
/英文 -
勤哲excel服务器2016 111.05 MB
/简体中文 -
Allsoon流媒体服务器 3.17 MB
/简体中文 -
PrivX(服务器访问与管理软件) 11.95 MB
/英文