ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

StarRocks配置

2021-11-29 10:32:14  阅读:531  来源: 互联网

标签:StarRocks join mem 配置 table1 limit 内存 mysql


1. 设置用户名和密码

1.1) 修改root密码

登陆

mysql -h FE_HOST -P9030 -uroot

fe_host 是任一 FE 节点的 ip 地址。9030 是 fe.conf 中的 query_port 配置。

设置密码:

SET PASSWORD FOR 'root' = PASSWORD('root');

1.2) 创建新用户

CREATE USER 'test' IDENTIFIED BY 'test_passwd';

后续登陆可以使用新创建的用户登陆

mysql -h FE_HOST -P9030 -uwenbronk -pa75

授权: 需要先建库

GRANT ALL ON example_db TO wenbronk;

2. 高级设置

2.1) 增大内存

内存不够时, 查询可能会出现‘Memory limit exceeded’, 这是因为doris对每个用户默认设置内存限制为 2g

mysql> show variables like '%mem_limit%';
+----------------+------------+
| Variable_name  | Value      |
+----------------+------------+
| exec_mem_limit | 2147483648 |
| load_mem_limit | 0          |
+----------------+------------+
2 rows in set (0.00 sec)

可以修改为 8g

SET exec_mem_limit = 8589934592;

上述设置仅仅在当前session有效, 如果想永久有效, 需要添加 global 参数

SET GLOBAL exec_mem_limit = 8589934592;

2.2) 修改超时时间

doris默认最长查询时间为300s, 如果仍然未完成, 会被cancel掉

mysql> SHOW VARIABLES LIKE "%query_timeout%";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| QUERY_TIMEOUT | 300   |
+---------------+-------+
1 row in set (0.00 sec)

可以修改为60s

SET query_timeout = 60;

同样, 如果需要全局生效需要添加参数 global

set global query_timeout = 60;

2.3) Broadcast/Shuffle Join

doris在join操作的时候时候, 默认使用broadcast的方式进行join, 即将小表通过广播的方式广播到大表所在的节点, 形成内存hash, 然后流式读出大表数据进行hashjoin

但如果小表的数据量也很大的时候, 就会造成内存溢出, 此时需要通过shuffle join的方式进行, 也被称为partition join. 即将大表小表都按照join的key进行hash, 然后进行分布式join

braodcast join

select sum(table1.pv) from table1 join table2 where table1.siteid = 2;

显示制定braodcast

select sum(table1.pv) from table1 join [broadcast] table2 where table1.siteid = 2;

suffle join

select sum(table1.pv) from table1 join [shuffle] table2 where table1.siteid = 2;

 

标签:StarRocks,join,mem,配置,table1,limit,内存,mysql
来源: https://www.cnblogs.com/gentlescholar/p/15618229.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有