PublicService 公共服务架构

PublicService公共服务是由configuration、jobhistory、udf、variable等多个子模块组成的综合性服务。Linkis 1.0在0.9版本的基础上还新增了标签管理。Linkis在用户不同作业执行过程中,不是每次执行都需要去设置一遍参数,很多可以复用的变量,函数,配置都是用户在完成一次设置后,能够被复用起来,当然还可以共享给别的用户使用。

PublicService 公共服务架构 - 图1

  1. linkis-configuration:对外提供了全局设置和通用设置的查询和保存操作,特别是引擎配置参数

  2. linkis-jobhistory:专门用于历史执行任务的存储和查询,用户可以通过jobhistory提供的接口获取历史任务 的执行情况。包括日志、状态、执行内容等。同时历史任务还支持了分页查询操作,对于管理员可以查看所有的历史任务,普通用户只能查看自己的历史任务。

  3. Linkis-udf:提供linkis的用户函数管理功能,具体可分为共享函数、个人函数、系统函数,以及函数使用的引擎,用户勾选后会在引擎启动的时候被自动加载。供用户在代码中直接引用和不同的脚本间进行函数复用。

  4. Linkis-variable:提供linkis的全局变量管理能力,存储用户定义的全局变量,查询用户定义的全局变量。

  5. linkis-instance-label:提供了label server 和label client两个模块,为Engine和EM打标签,提供基于节点的标签增删改查能力。主要功能如下:

  • 为一些特定的标签,提供资源管理能力,协助RM在资源管理层面更加精细化

  • 为用户提供标签能力。为一些用户打上标签,这样在引擎申请时,会自动加上这些标签判断

  • 提供标签解析模块,能将用户的请求,解析成一堆标签。

  • 具备节点标签管理的能力,主要用于提供节点的标签CRUD能力,还有标签资源管理用于管理某些标签的资源,标记一个Label的最大资源、最小资源和已使用资源。