既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
- source_ip:发起查询的 IP 地址,类型为 CIDR。
- db:查询所访问的 Database,可以为 , 分割的字符串。
系统在为查询任务匹配分类器时,查询任务的信息与分类器的条件完全相同,才能视为匹配。如果存在多个分类器的条件与查询任务完全匹配,则需要计算不同分类器的匹配度。其中只有匹配度最高的分类器才会生效。
匹配度的计算方式如下
- 如果 user 一致,则该分类器匹配度增加 1。
- 如果 role 一致,则该分类器匹配度增加 1。
- 如果 query_type 一致,则该分类器匹配度增加 1 + 1/分类器的 query_type 数量。
- 如果 source_ip 一致,则该分类器匹配度增加 1 + (32 - cidr_prefix)/64。
- 如果查询的 db 匹配,则匹配度加 10。
例如
多个与查询任务匹配的分类器中,分类器的条件数量越多,则其匹配度越高。
-- 因为分类器 B 的条件数量比 A 多,所以 B 的匹配度比 A 高。
classifier A (user='Alice')
classifier B (user='Alice', source_ip = '192.168.1.0/24')
如果分类器的条件数量相等,则分类器的条件描述越精确,其匹配度越高。
因为分类器 B 限定的 `source_ip` 地址范围更小,所以 B 的匹配度比 A 高。
classifier A (user='Alice', source_ip = '192.168.1.0/16')
classifier B (user='Alice', source_ip = '192.168.1.0/24')
隔离计算资源
开启资源组
通过设置相应会话变量开启 Pipeline 引擎以及资源组功能。
SET enable_pipeline_engine = true;
SET enable_resource_group = true;
说明:如果需要设置全局变量,需要运行 SET GLOBAL enable_resource_group = true;。
创建资源组和分类器
创建资源组,关联分类器,并分配资源。
CREATE RESOURCE GROUP group_name
TO (
user='string',
role='string',
query_type in ('select'),
source_ip='cidr'
) -- 创建分类器,多个分类器间用英文逗号(,)分隔。
WITH (
"cpu\_core\_limit" = "INT",
"mem\_limit" = "m%",
"concurrency\_limit" = "INT",
"type" = "str" -- 资源组的类型,取值为 normal 或 short\_query。
);
示例:
CREATE RESOURCE GROUP rg1
TO
(user='rg1\_user1', role='rg1\_role1', query_type in ('select'), source_ip='192.168.x.x/24'),
(user='rg1\_user2', query_type in ('select'), source_ip='192.168.x.x/24'),
(user='rg1\_user3', source_ip='192.168.x.x/24'),
(user='rg1\_user4'),
(db='db1')
WITH (
'cpu\_core\_limit' = '10',
'mem\_limit' = '20%',
'big\_query\_cpu\_second\_limit' = '100',
'big\_query\_scan\_rows\_limit' = '100000',
'big\_query\_mem\_limit' = '1073741824'
);
查看资源组和分类器
查询所有的资源组和分类器
SHOW RESOURCE GROUPS ALL;
查询和当前用户匹配的资源组和分类器
SHOW RESOURCE GROUPS;
查询指定的资源组和分类器
SHOW RESOURCE GROUP group_name;
实操记录:
'root'@(none) 06:05:20>SHOW RESOURCE GROUPS;
+------+-----------+----------------+-----------+----------------------------+---------------------------+---------------------+-------------------+--------+-----------------------------------------------+
| name | id | cpu_core_limit | mem_limit | big_query_cpu_second_limit | big_query_scan_rows_limit | big_query_mem_limit | concurrency_limit | type | classifiers |
+------+-----------+----------------+-----------+----------------------------+---------------------------+---------------------+-------------------+--------+-----------------------------------------------+
| rg2 | 129398467 | 10 | 12.0% | 300 | 50000000 | 536870912 | 2000000 | NORMAL | (id=129398469, weight=10.0, db='test') |
| rg1 | 129398471 | 10 | 15.0% | 300 | 50000000 | 8589934592 | 2000000 | NORMAL | (id=129398473, weight=10.0, db='test') |
+------+-----------+----------------+-----------+----------------------------+---------------------------+---------------------+-------------------+--------+-----------------------------------------------+
2 rows in set (0.00 sec)
'root'@(none) 06:05:43>SHOW RESOURCE GROUPS ALL;
+------+-----------+----------------+-----------+----------------------------+---------------------------+---------------------+-------------------+--------+----------------------------------------------------------------------------------------------------+
| name | id | cpu_core_limit | mem_limit | big_query_cpu_second_limit | big_query_scan_rows_limit | big_query_mem_limit | concurrency_limit | type | classifiers |
+------+-----------+----------------+-----------+----------------------------+---------------------------+---------------------+-------------------+--------+----------------------------------------------------------------------------------------------------+
| rg1 | 129398471 | 10 | 15.0% | 300 | 50000000 | 8589934592 | 2000000 | NORMAL | (id=129398472, weight=3.459375, user=test_rw, query_type in (SELECT), source_ip=192.168.10.12/24) |
| rg1 | 129398471 | 10 | 15.0% | 300 | 50000000 | 8589934592 | 2000000 | NORMAL | (id=129398473, weight=10.0, db='test') |
| rg2 | 129398467 | 10 | 12.0% | 300 | 50000000 | 536870912 | 2000000 | NORMAL | (id=129398468, weight=3.459375, user=bigdatat_rw, query_type in (SELECT), source_ip=192.168.10.13/24) |
| rg2 | 129398467 | 10 | 12.0% | 300 | 50000000 | 536870912 | 2000000 | NORMAL | (id=129398469, weight=10.0, db='test') |
+------+-----------+----------------+-----------+----------------------------+---------------------------+---------------------+-------------------+--------+----------------------------------------------------------------------------------------------------+
4 rows in set (0.00 sec)
'root'@(none) 06:06:18>SHOW RESOURCE GROUP rg1;
+------+-----------+----------------+-----------+----------------------------+---------------------------+---------------------+-------------------+--------+--------------------------------------------------------------------------------------------------+
| name | id | cpu_core_limit | mem_limit | big_query_cpu_second_limit | big_query_scan_rows_limit | big_query_mem_limit | concurrency_limit | type | classifiers |
+------+-----------+----------------+-----------+----------------------------+---------------------------+---------------------+-------------------+--------+--------------------------------------------------------------------------------------------------+
| rg1 | 129398471 | 10 | 15.0% | 300 | 50000000 | 8589934592 | 2000000 | NORMAL | (id=129398472, weight=3.459375, user=test_rw, query_type in (SELECT), source_ip=192.168.10.12/24) |
| rg1 | 129398471 | 10 | 15.0% | 300 | 50000000 | 8589934592 | 2000000 | NORMAL | (id=129398473, weight=10.0, db='test') |
+------+-----------+----------------+-----------+----------------------------+---------------------------+---------------------+-------------------+--------+--------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
'root'@(none) 06:06:24>
说明:weight:代表分类器的匹配度。
管理资源组配额和分类器
您可以修改资源组的配额,以及增加或删除资源组的分类器。
为已有的资源组修改资源配额。
ALTER RESOURCE GROUP group_name WITH (
'cpu\_core\_limit' = 'INT',
'mem\_limit' = 'm%'
);
删除指定资源组。
DROP RESOURCE GROUP <group_name>;
添加新的分类器。
ALTER RESOURCE GROUP <group_name> ADD (user='string', role='string', query_type in ('select'), source_ip='cidr');
删除指定的分类器。
ALTER RESOURCE GROUP <group_name> DROP (CLASSIFIER_ID_1, CLASSIFIER_ID_2, ...);
删除所有的分类器。
ALTER RESOURCE GROUP <group_name> DROP ALL;
监控资源组
可监控的资源组相关 Metric 包括:
-
FE 节点
- starrocks_fe_query_resource_group:该资源组中查询任务的数量。
- starrocks_fe_query_resource_group_latency:该资源组的查询延迟百分位数。
- starrocks_fe_query_resource_group_err:该资源组中报错的查询任务的数量。
- 查看metrics采集数据:FE IP:8040/metrics
-
BE 节点
- starrocks_be_resource_group_cpu_limit_ratio:该资源组 CPU 配额比率的瞬时值。
- starrocks_be_resource_group_cpu_use_ratio:该资源组 CPU 使用率瞬时值。
- starrocks_be_resource_group_mem_limit_bytes:该资源组内存配额比率的瞬时值。
- starrocks_be_resource_group_mem_allocated_bytes:该资源组内存使用率瞬时值。
- 查看metrics采集数据:BE IP:8040/metrics
总结:
以上是starrocks集群资源资源的介绍,欢迎评论交流,转发,收藏~
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
1vi-1715306892177)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!