TDH社区版基础能力演示(三):计算隔离(离线跑批、OLAP分析业务演示)

介绍

TDH社区版提供了一种先进的资源管理机制,不仅在task级别上实现了资源的精细管控,还支持针对用户和单个查询的计算资源分配。这种灵活性确保了不同业务场景下资源的有效利用与合理分配。通过使用安全管理组件Guardian上的Furion Scheduler,可以轻松配置队列资源的配额与权限管理,为多租户环境下的资源共享提供了强有力的支持。

能力演示

支持数据库计算配额,支持FIFO和FAIR两种不同的任务调度机制,支持队列间的资源隔离。

详细操作

分配队列计算资源

在多个租户共用资源的场景下,可能因资源被批处理任务抢占或被多个小任务长时间占用,进而导致部分任务无法得到处理。为精细化管控资源和提升 CPU 利用率,Inceptor 基于 FAIR(公平调度),新增了 FURION 调度策略,它采用加权的调度排序算法,同时将调度粒度缩小至任务级,此外还通过树形结构构建队列关系,可根据节点在调度指标上的关系决定调度顺序。
接下来将介绍如何开启 FURION 调度策略并分配计算资源。

1. 准备工作

默认情况,Inceptor 采用 FIFO(先进先出)调度策略,在授予计算配额前,您需要跟随下述步骤,开启 Furion 调度策略。
① 登录 Transwarp Manager 平台;
② 在页面左侧,单击仪表盘 > 集群,找到并单击 Quark 服务;
③ 单击配置页签,然后单击页面右侧的添加自定义参数;
④ 在弹出的对话框中,根据下述说明完成参数配置,然后单击确定;

  • 配置项:填写为 spark.guardian.enabled。
  • 值:填写为 true。
  • 配置文件:选择为 hive-site.xml

⑤ 搜索 inceptor.scheduler.enabled 参数,将其值修改为 true;

⑥ 在页面右上角,选择 … > 配置服务,在弹出的对话框中单击确定;

⑦ 等待配置应用完成后,单击重启;

注意:
重启该服务可能导致业务短暂不可用,请在业务低峰期或运维窗口期操作。

2.实际业务操作

假设本demo基于Inceptor 建立了数据服务平台,目前主要有跑批和探索分析的业务场景,队列以离线跑批业务优先级最高,分析业务次之。我们希望借助队列调度策略能力,实现下述需求,从而实现基于业务特性分配计算资源,提升利用率和效率。
接下来,将举例如何配置队列来实现上述需求(仅做示例哦,没那么严谨,实际还需参考自身业务)。
① 登录 Guardian 平台;

② 在顶部菜单栏,单击权限,然后选择 INCEPTOR > Quark1;
③ 单击计算配额页签;

④ 在 Furion 调度配置区域框右侧,单击编辑;
⑤ 单击 root 队列右侧的 + 图标;

⑥ 在弹出的对话框中,根据下述说明完成配置;


  • Queue 名称:填写队列名称,本案例填写为 query。
  • 权重:权重数字越大,优先级越高。
  • 预留百分比:要预留独享的 CPU 百分比(相对于集群的总 CPU 核数),该资源不与同级别的队列共享。
  • 预留 CPU 核数:要预留独享的 CPU 核数,该配置与预留百分比配置一项即可。
  • 最大 CPU 百分比:队列可使用的 CPU 资源上限百分比,超过该上限的队列中的任务将不再被调度。
  • 最大 CPU 核数:队列可使用的最大 CPU 核数,该配置与最大 CPU 百分比配置一项即可。
  • 调度策略:根据业务需求选择队列内任务的调度策略。
  • FIFO:先进先出调度策略,根据任务提交顺序分配资源并执行,可能因某个负载较重的任务而阻塞后续任务。
  • FAIR:公平调度策略,第一个任务到达时会将队列所有资源给任务,当第二个任务到达时,系统会分一半的资源给该任务,以此类推。

⑦ 接下来就可以参照步骤5为跑批、分析业务创建相应的队列,配置完成后单击保存即可(下图仅做示例);

⑧ 在页面下方,可以设置单个队列/连接/用户可执行的最大 SQL 数量。

⑨ 验证配置并指定队列来执行 SQL 语句,该操作为可选项,按需选择即可,如有需要可参考Inceptor开发者指南--资源与权限管理章节

离线跑批业务演示

set ngmr.furion.pool = q1;
-- 主表与维表关联跑批入数

TRUNCATE TABLE ce_demo.cust_return_info;
INSERT INTO ce_demo.cust_return_info
SELECT
    c_custkey,
    c_name,
    sum(l_extendedprice * (1 - l_discount)) as revenue,
    c_acctbal,
    n_name,
    c_address,
    c_phone,
    c_comment
FROM
    ce_demo.lineitem_order_cust,
    ce_demo.nation
WHERE
    l_shipdate >= date '1995-06-01'
    and l_shipdate < add_months(date '1995-06-01', 1)
    and l_returnflag = 'R'
    and c_nationkey = n_nationkey
GTOUP BY
    l_key,
    c_custkey,
    c_name,
    c_acctbal,
    c_phone,
    n_name,
    c_address,
    c_comment
ORDER BY
    revenue DESC
;

OLAP分析业务演示

set ngmr.furion.pool = q2;
-- 单表统计分析

SELECT
    l_shipmode,
    sum(case
        when o_orderpriority = '1-URGENT'
            or o_orderpriority = '2-HIGH'
            then 1
        else 0
    end) as high_line_count,
    sum(case
        when o_orderpriority <> '1-URGENT'
            and o_orderpriority <> '2-HIGH'
            then 1
        else 0
    end) as low_line_count
FROM
    ce_demo.lineitem_order_cust
WHERE l_shipmode in ('MAIL', 'SHIP')
    and l_commitdate < l_receiptdate
    and l_shipdate < l_commitdate
    and l_shipdate >= date '1994-01-01'
    and l_shipdate < add_months(date '1994-01-01', 3)
GROUP BY
    l_shipmode
ORDER BY
    l_shipmode
limit 10;

-- 多表关联分析
SELECT
    100.00 * sum(case
        when p_type like 'PROMO%'
            then l_extendedprice * (1 - l_discount)
        else 0
    end) / sum(l_extendedprice * (1 - l_discount)) as promo_revenue
FROM
    ce_demo.lineitem_order_cust,
    ce_demo.part
WHERE
    l_partkey = p_partkey
    and l_shipdate >= date '1995-09-01'
    and l_shipdate < add_months(date '1995-09-01', 1)
limit 10;


 

通过上述介绍与演示,我们可以看到Inceptor在资源管理和调度方面提供了极为强大且灵活的支持。不论是采用精确控制计算资源分配的FURION调度策略,还是通过Guardian平台直观且便捷地配置队列资源配额与权限管理,用户都能够高效地实现对计算资源的优化配置和使用。这不仅提升了资源利用率,也为多租户环境下的资源共享提供了坚实的基础。

此外,无论是为了满足离线跑批业务的高优先级需求,还是在线分析业务的快速响应要求,Inceptor都展示了其卓越的适应能力和效率提升潜力。借助于详细的步骤指导和实际操作示例,用户可以轻松上手,根据自身业务特点灵活调整资源配置,最大化利用集群性能。

 

posted @ 2025-06-12 11:11  星环科技TDH社区版  阅读(22)  评论(0)    收藏  举报