集群管理

支持展示当前平台下所有已开通集群的合集。

资源管理 - 图1

点击“集群配置”按钮,可查看该集群的Spark和Hive组件信息(如有)

Hive

若集群下有配置Hive组件,支持查看Hive-Site文件内容,可下载Hive-Site.xml文件。

资源管理 - 图2

Spark

若集群下有配置Spark引擎,支持进入“集群配置”页查看配置的Spark引擎列表。

若Spark引擎版本为3.3,支持在引擎下针对表格式登记Catalog。离线传输基于Spark引擎使用三元组读写对应表格式的数据时,将使用此处登记的该Spark引擎该表格式的Catalog。

资源管理 - 图3

Impala

此处会展示当前平台-集群下的Impala集群,并支持由平台管理员设置归属项目组。注意:如果该Impala集群的归属项目组已设置授权项目授权,则不可修改归属项目组。

资源管理 - 图4

Azkaban执行策略

离线开发支持在后台数据库配置Azkaban的机器分组,可配置诸如某项目下python等节点类型的任务运行在某个azkaban执行机器上,平台管理员支持在平台管理-资源管理中的集群管理查看Azkaban的机器分组详情以及生效规则。

Azkaban资源分组配置说明

(1)需要在ops侧对开关进行配置:

azkaban.executor.routing.enabled=false
azkaban.executor.routing.cache.refresh.interval=300000

资源管理 - 图5

(2)其次涉及到的变更表,包括:

调度资源表:schedule_resource_group

资源组执行器关联表:resource_group_executor_rel

执行器路由规则表:executor_routing_rule

(3)添加资源分组-示例:

需要再 azkaban数据表中插入对应的数据,包括资源组、资源组和执行机的关系、匹配规则。

# 新建资源组
INSERT INTO schedule_resource_group (group_key, group_name, description, is_default)
VALUES ('az_sche_group_qatest1', 'qatest调度资源组', '测试资源组', 0);

# 增加资源组关联执行器
# 资源组az_sche_group_qatest1关联azkaban executorid 1
INSERT INTO resource_group_executor_rel (group_key, executor_id) values ('az_sche_group_qatest1',1);

# 增加执行器路由规则
# 添加路由规则,mammut、mammut_qa项目下flow包含的python或sparksql节点时,使用az_sche_group_qatest1资源组

INSERT INTO executor_router_rule (name, priority, group_key, match_conditions, description)
VALUES (
    'qatest执行规则', 10, 'az_sche_group_qatest1',
    '{"type":"and","conditions":[{"type":"and","rules":[{"dimension":"product","displayName":"项目账号","value":["mammut","mammut_qa"],"type":"or"},{"dimension":"jobtype","displayName":"任务类型","value":["py","sparksql"],"type":"or"}]}]}',
    'qatest测试路由规则'
);

(4)资源路由规则配置-示例

以下json要插入到SQL中。

{
  "type": "and",
  "conditions": [
      {
          "type": "and",      
          "rules" : [
              {
                    "dimension": "product",
                    "displayName": "项目",
                    "value": ["p1", "p2", "p3"],
                    "type": "or"
              }, {
                    "dimension": "jobtype",
                    "displayName": "节点类型",
                    "value": ["ndi", "spark"],
                    "type": "and"
              }, {
                    "dimension": "datasource",
                    "displayName": "数据源",
                    "value": ["ndi", "spark"],
                    "type": "and"
              }
          ]
      },{
          "type": "and",      
          "rules" : [
              {
                    "dimension": "product",
                    "value": ["p1", "p2"],
                    "type": "or"
              }, {
                    "dimension": "datasource",
                    "value": ["123"],
                    "type": "and"
              }
          ]
      }    
   ]
}

(5)节点类型说明

上面的json中,会用到任务的类型, "dimension": "jobtype", 需要填写的 value 就是 任务类型的列表。 任务类型,使用如下表格中的内容,左边是填到分组规则配置中的,右边是平台显示的类型。

节点类型 标识 类型
控制节点 decision DECISION
innerflow INNERFLOW
trigger_node TRIGGER_NODE
noop NOOP
polling POLLING
任务节点 ndi NDI
sparksql SQL(sparksql)
sparksql-k8s SQL(sparksql k8s)
hive SQL(hive client)
hivejdbc SQL(hive jdbc)
impala SQL(impala)
inceptor SQL(impala)
argodb SQL(impala)
presto SQL(impala)
db2 DB2
dm_sql DB2DM_SQL
doris DORIS
gaussdb GAUSSDB
db2gp_sql GP_SQL
mysql2 MYSQL
oceanbase OCEAN_BASE
db2oracle_sql ORACLE_SQ
sqlserver SQL_SERVER
starrocks DB2STAR_ROCK
tidb TIDB
vertica_sql VERTICA_SQL
pyb PYTHON
pyspark python(pyspark)
shell SHELL
pl PERL
cube CUBE
mr MR
spark SPARK
script SCRIPT
access ACCESS_IDENTIFY
集群管理可查看Azkaban的执行策略

平台管理员可查看具体的Azkaban执行策略,包括策略优先级、执行规则等:

资源管理 - 图6

同时支持查看调度资源组和执行机器的详情:

资源管理 - 图7

平台资源管理

平台资源管理模块,核心功能是支持在平台级别登记资源(包括Doris和StarRocks),并在项目组级登记这2类数据源时,可以进行引用,从而实现客户侧一个Doris或StarRocks集群,可以被平台下不同项目组见共享使用的功能。

资源管理 - 图8

如下图,为登记数据源的页面:

资源管理 - 图9

具体项目下登记数据源的引用的相关介绍,可以前往“登记数据源”中查看。