news 2026/6/9 23:45:16

基于doris manager部署Doris存算集群及测试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于doris manager部署Doris存算集群及测试

1. 集群架构

2. 节点规划

机器服务cpu内存SSD
共享存储

hdfs://hdfs.xxxx.net:9000

(我用的商业的,没有自己部一套开源的)

\\\
服务器-1

doris-manager(版本直接搞最新的,越新越好用)

48200
服务器-2mysql(保存doris-manager元数据,自己部署)48200
服务器-3fe、meta service、foundationDB
混部版本V3.0.8
16641000
服务器-5
服务器-6
服务器-7be(compute-group-1)版本V3.0.8832300
服务器-8be(compute-group-2)版本V3.0.8832300
服务器-9
服务器-10be(compute-group-3)版本V3.0.8832300
服务器-11
服务器-12

3. Doris manager部署

部署地址:部署 Manager | SelectDB Docshttps://docs.selectdb.com/enterprise/management-guide/doris-manager-management/deploy-doris-manager

修改配置文件webserver/conf/manager.conf文件可以配置 WebServer 服务

DB_TYPEmysql服务依赖的数据库类型:mysql、h2 或者 postgresql
DB_HOST你自己的数据库的访问地址,只在 DB_TYPE 为 mysql/postgresql 时生效
DB_PORT你自己的数据库的访问端口,只在 DB_TYPE 为 mysql/postgresql 时生效
DB_USER你自己的数据库的访问用户,只在 DB_TYPE 为 mysql/postgresql 时生效
DB_PASS你自己的数据库的访问密码,只在 DB_TYPE 为 mysql/postgresql 时生效
DB_DBNAME你自己的数据库的访问库名,只在 DB_TYPE 为 mysql/postgresql 时生效

登录服务器2:8004端口

4. 存算分离集群部署

4.1 目录规划

文件dir
部署/检测脚本/opt/software
安装目录/opt/module
fe元数据存放位置/data/doris/fe/doris-meta
fe日志目录/data/doris/fe/log
be日志目录/data/doris/be/log
be文件缓存目录/data/doris/be/file_cache

4.2 详细部署步骤

见官网:部署存算分离集群 | SelectDB Docshttps://docs.selectdb.com/enterprise/management-guide/doris-cluster-management/deploy-cluster/deploy-separating-storage-compute-cluster

大功告成

5. 测试

5.1 Storage Vault

Storage Vault 是 Doris 在存算分离模式中所使用的远程共享存储,可配置一个或多个 Storage Vault,可将不同表存储在不同 Storage Vault 上。

5.1.1 创建Storage Vault

创建基于 HDFS 的存算分离模式 Doris 集群,需要确保所有的节点 (包括 FE / BE 节点、Meta Service) 均有权限访问所指定的 HDFS。

CREATE STORAGE VAULT IF NOT EXISTS hdfs_demo_a PROPERTIES ( "type" = "hdfs", -- required "fs.defaultFS" = "hdfs://hdfs.xxxx.net:9000", -- required "path_prefix" = "bigdata/data_a", -- optional, 一般按照业务名称填写 "hadoop.username" = "doris" ); CREATE STORAGE VAULT IF NOT EXISTS hdfs_demo_b PROPERTIES ( "type" = "hdfs", -- required "fs.defaultFS" = "hdfs://hdfs.xxxx.net:9000", -- required "path_prefix" = "bigdata/data_b", -- optional, 一般按照业务名称填写 "hadoop.username" = "doris" ); CREATE STORAGE VAULT IF NOT EXISTS hdfs_vault PROPERTIES ( "type" = "hdfs", -- required "fs.defaultFS" = "hdfs://hdfs.xxxx.net:9000", -- required "path_prefix" = "doris", -- optional, 一般按照业务名称填写 "hadoop.username" = "doris" );

5.2.2 设置默认Storage Vault

SET hdfs_vault AS DEFAULT STORAGE VAULT

5.2.3 查看Storage Vault

show STORAGE vaults

我们创建3个,doris-manager帮我们部署doris时,自动帮我们创建了一个默认的,这里我新建了一个修改为默认的。

5.2.4 建表测试

5.2.4.1 库没设置,表没设置时,且用户有hdfs_vault\hdfs_demo_a\hdfs_demo_b的权限时
create database if not EXISTS ods; CREATE TABLE IF NOT EXISTS example_tbl_unique ( user_id LARGEINT NOT NULL, user_name VARCHAR(50) NOT NULL, city VARCHAR(20), age SMALLINT, sex TINYINT ) UNIQUE KEY(user_id, user_name) DISTRIBUTED BY HASH(user_id) BUCKETS 10 PROPERTIES ( "enable_unique_key_merge_on_write" = "true" ); show create TABLE ods.example_tbl_unique --结果 CREATE TABLE `example_tbl_unique` ( `user_id` largeint NOT NULL, `user_name` varchar(50) NOT NULL, `city` varchar(20) NULL, `age` smallint NULL, `sex` tinyint NULL ) ENGINE=OLAP UNIQUE KEY(`user_id`, `user_name`) DISTRIBUTED BY HASH(`user_id`) BUCKETS 10 PROPERTIES ( "file_cache_ttl_seconds" = "0", "is_being_synced" = "false", "storage_medium" = "hdd", "storage_format" = "V2", "inverted_index_storage_format" = "V2", "enable_unique_key_merge_on_write" = "true", "light_schema_change" = "true", "storage_vault_id" = "2", "storage_vault_name" = "hdfs_vault", "disable_auto_compaction" = "false", "enable_single_replica_compaction" = "false", "group_commit_interval_ms" = "10000", "group_commit_data_bytes" = "134217728", "enable_mow_light_delete" = "false" );
5.2.4.2 库设置,表没设置时,且用户有hdfs_vault\hdfs_demo_a\hdfs_demo_b的权限时
CREATE DATABASE IF NOT EXISTS `ods_a` PROPERTIES ( "storage_vault_name" = "hdfs_demo_a" ); CREATE TABLE IF NOT EXISTS ods_a.example_tbl_unique ( user_id LARGEINT NOT NULL, user_name VARCHAR(50) NOT NULL, city VARCHAR(20), age SMALLINT, sex TINYINT ) UNIQUE KEY(user_id, user_name) DISTRIBUTED BY HASH(user_id) BUCKETS 10 PROPERTIES ( "enable_unique_key_merge_on_write" = "true" ); show create table ods_a.example_tbl_unique CREATE TABLE `example_tbl_unique` ( `user_id` largeint NOT NULL, `user_name` varchar(50) NOT NULL, `city` varchar(20) NULL, `age` smallint NULL, `sex` tinyint NULL ) ENGINE=OLAP UNIQUE KEY(`user_id`, `user_name`) DISTRIBUTED BY HASH(`user_id`) BUCKETS 10 PROPERTIES ( "file_cache_ttl_seconds" = "0", "is_being_synced" = "false", "storage_medium" = "hdd", "storage_format" = "V2", "inverted_index_storage_format" = "V2", "enable_unique_key_merge_on_write" = "true", "light_schema_change" = "true", "storage_vault_id" = "3", "storage_vault_name" = "hdfs_demo_a", "disable_auto_compaction" = "false", "enable_single_replica_compaction" = "false", "group_commit_interval_ms" = "10000", "group_commit_data_bytes" = "134217728", "enable_mow_light_delete" = "false" );
5.2.4.3 库设置a,表设置b时,且用户有hdfs_vault\hdfs_demo_a\hdfs_demo_b的权限时
CREATE DATABASE IF NOT EXISTS `ods_a` PROPERTIES ( "storage_vault_name" = "hdfs_demo_a" ); CREATE TABLE IF NOT EXISTS ods_a.example_tbl_unique_b ( user_id LARGEINT NOT NULL, user_name VARCHAR(50) NOT NULL, city VARCHAR(20), age SMALLINT, sex TINYINT ) UNIQUE KEY(user_id, user_name) DISTRIBUTED BY HASH(user_id) BUCKETS 10 PROPERTIES ( "enable_unique_key_merge_on_write" = "true", "storage_vault_name" = "hdfs_vault_b" ); show create table ods_a.example_tbl_unique_b CREATE TABLE `example_tbl_unique_b` ( `user_id` largeint NOT NULL, `user_name` varchar(50) NOT NULL, `city` varchar(20) NULL, `age` smallint NULL, `sex` tinyint NULL ) ENGINE=OLAP UNIQUE KEY(`user_id`, `user_name`) DISTRIBUTED BY HASH(`user_id`) BUCKETS 10 PROPERTIES ( "file_cache_ttl_seconds" = "0", "is_being_synced" = "false", "storage_medium" = "hdd", "storage_format" = "V2", "inverted_index_storage_format" = "V2", "enable_unique_key_merge_on_write" = "true", "light_schema_change" = "true", "storage_vault_id" = "4", "storage_vault_name" = "hdfs_demo_b", "disable_auto_compaction" = "false", "enable_single_replica_compaction" = "false", "group_commit_interval_ms" = "10000", "group_commit_data_bytes" = "134217728", "enable_mow_light_delete" = "false" );
5.2.4.4 库没设置,表没设置,用户没有hdfs_vault\hdfs_demo_a\hdfs_demo_b的权限时

(1)在ods库创建表时,报异常。没有hdfs_vault权限;

(2)在ods库查看表时,有表信息,可以读写数据;

(3)在ods_a库查看表时,有表信息,可以读写数据;

(4)在任何库,只要用户对这个库有drop权限就可以删除任意表;

5.2.5 授予/撤销权限

GRANT USAGE_PRIV ON STORAGE VAULT <vault_name> TO { ROLE | USER } {<role> | <user>} REVOKE USAGE_PRIV ON STORAGE VAULT <vault_name> FROM { ROLE | USER } {<role> | <user>}

6. 计算组

在存算分离架构下,可以将一个或多个计算节点 (BE) 组成一个计算组 (Compute Group)。本文档介绍如何使用计算组,其中涉及的操作包括:

  • 查看所有计算组
  • 计算组授权
  • 在用户级别绑定计算组 (default_compute_group) 以达到用户级别的隔离效果

6.1 查看所有计算组

使用SHOW COMPUTE GROUPS命令可以查看当前仓库中的所有计算组。返回结果会根据用户权限级别显示不同内容:

  • 具有ADMIN权限的用户可以查看所有计算组
  • 普通用户只能查看其拥有使用权限(USAGE_PRIV)的计算组
  • 如果用户没有任何计算组的使用权限,则返回结果为空
SHOW COMPUTE GROUPS;

6.2 计算组权限

6.2.1 授予计算组访问权限

前置条件:当前操作用户具备ADMIN权限,或者当前用户属于 admin role。

GRANT USAGE_PRIV ON COMPUTE GROUP {compute_group_name} TO {user};

6.2.2 撤销计算组访问权限

前置条件:当前操作用户具备ADMIN权限,或者当前用户属于 admin role。

GRANT USAGE_PRIV ON COMPUTE GROUP {compute_group_name} TO {user};

6.2.3 撤销计算组访问权限

前置条件:当前操作用户具备ADMIN权限,或者当前用户属于 admin role。

REVOKE USAGE_PRIV ON COMPUTE GROUP {compute_group_name} FROM {user};

6.2.4 设置默认计算组

为当前用户设置默认计算组(此操作需要当前用户已经拥有计算组的使用权限):

SET PROPERTY 'default_compute_group' = '{clusterName}';

为其他用户设置默认计算组(此操作需要 Admin 权限):

SET PROPERTY FOR {user} 'default_compute_group' = '{clusterName}';

查看当前用户默认计算组,返回结果中default_compute_group的值即为默认计算组:

SHOW PROPERTY;

查看其他用户默认计算组,此操作需要当前用户具备 admin 权限,返回结果中default_compute_group的值即为默认计算组:

SHOW PROPERTY FOR {user};

查看当前仓库下所有可用的计算组:

SHOW COMPUTE GROUPS;

6.2.5 没有任务一个计算组时

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 19:01:12

儿童食品品牌如何做到70%复购率?

在当前同质化严重的儿童食品市场&#xff0c;一个新品牌要杀出重围有多难&#xff1f;传统玩法是砸钱投广告、铺渠道、做促销&#xff0c;但结果往往是获客成本高企&#xff0c;客户忠诚度低下。 业内有一家新兴儿童食品品牌却走了一条截然不同的路&#xff1a;不依赖大规模广…

作者头像 李华
网站建设 2026/6/10 12:53:27

什么是跨浏览器测试?

跨浏览器测试是在不同的浏览器和操作系统上测试网站或基于网络的应用程序的整体稳定性的过程。这种测试的目的是确保网站或应用程序的功能和性能在各种浏览器和操作系统上都是一致的&#xff0c;从而提供良好的用户体验。 跨浏览器测试包括检查网站或应用程序在不同浏览器上的…

作者头像 李华
网站建设 2026/6/10 15:37:33

4.3 Langfuse 集成实战:追踪 OpenAI、LangChain 和 LangGraph 应用

4.3 Langfuse 集成实战:追踪 OpenAI、LangChain 和 LangGraph 应用 导语:在上一章,我们已经成功地在本地运行了 Langfuse,并初步领略了其强大的追踪能力。现在,是时候将这项能力应用到我们之前构建的各种 AI 应用中了。本章将是一次聚焦于“集成”的实战演练。我们将分别针…

作者头像 李华
网站建设 2026/6/10 15:09:14

5.1 LoRA 微调,YYDS!一文带你入门低成本优化垂直领域大模型

LoRA 微调,YYDS!一文带你入门低成本优化垂直领域大模型 导语:欢迎来到课程的最后一周!在前四周,我们如同“装备大师”,学会了使用 Prompt、工具、框架、评估体系等“外功”来武装我们的 Agent。但面对某些高度专业的垂直领域(如医疗、法律、金融),我们发现,即使是 GP…

作者头像 李华
网站建设 2026/6/9 19:43:07

基于单片机的前照灯随动系统设计

基于单片机的前照灯随动系统设计 第一章 引言 夜间行车时&#xff0c;传统汽车前照灯照射方向固定&#xff0c;车辆转弯时易产生照明盲区&#xff0c;导致驾驶员无法及时发现弯道内侧障碍物&#xff0c;成为引发交通事故的重要隐患。随着汽车智能化发展&#xff0c;前照灯随动调…

作者头像 李华
网站建设 2026/6/10 12:37:07

1.2 AI+产品的新机遇:AI Embedded、Copilot、Agent三大模式详解

1.2 AI产品的新机遇&#xff1a;AI Embedded、Copilot、Agent三大模式详解 随着AIGC技术的快速发展&#xff0c;AI在产品中的应用也越来越成熟。作为产品经理&#xff0c;我们需要理解不同的AI应用模式及其特点&#xff0c;以便在产品设计中做出合适的选择。今天我们就来详细解…

作者头像 李华