严格来说,StarRocks并没有所谓的“Standalone运行模式”,生产环境下更是不建议进行单实例部署。这里将单机部署整理出来,主要是考虑当用户测试环境受限于机器数量或仅希望验证功能,那么也可以在一台机器上简易部署把StarRocks跑起来。
一、部署节点
主机IP |
主机名 |
内存 |
192.168.80.134 |
hadoop101 |
>=8GB |
二、部署规划
部署目录及数据目录设计如下,后续的部署操作严格按照部署设计进行:
服务名称 |
部署目录 |
日志目录 |
数据目录 |
FE |
/opt/module/StarRocks/fe |
/opt/module/StarRocks/fe/log |
/opt/module/StarRocks/fe/meta |
BE |
/opt/module/StarRocks/be |
/opt/module/StarRocks/be/log |
/opt/module/StarRocks/be/storage |
Broker |
/opt/module/StarRocks/apache_hdfs_broker |
/opt/module/StarRocks/apache_hdfs_broker/log |
— |
mysql-client |
/opt/module/mysql |
/opt/module/mysql/log |
/opt/module/mysql/data |
mysql-client的安装步骤,请参考mysql的安装,这里省略。
三、部署服务
(1)安装之前先使用命令检查CPU是否支持,有信息输出则支持,没信息输出则不支持建议更换机器
[root@hadoop101 software]# cat /proc/cpuinfo |grep avx2
(2)下载tar包,并重命名(省略)
(3)解压tar包并重命名
[root@hadoop101 software]# tar -zxvf StarRocks-1.19.1.tar.gz -C /opt/module/
[root@hadoop101 software]# mv /opt/module/StarRocks-1.19.1 /opt/module/StarRocks
(4)创建元数据目录
[root@hadoop101 software]# cd /opt/module/StarRocks/fe
[root@hadoop101 fe]# mkdir -p meta
(5)启动hadoop101 FE节点
[root@hadoop101 fe]# bin/start_fe.sh --daemon
(6)查看FE服务是否启动成功
FE使用Java语言编写,使用jps命令查看java进程,若发现有StarRocksFe进程,即为启动成功:
[root@hadoop101 fe]# jps | grep StarRocksFe
5164 StarRocksFe
如果进程状态异常可在FE日志目录中查看日志追踪原因,FE的主要日志在fe.log中,所有查询的审计日志在fe.audit.log中。由于是初次启动,如果在操作过程中遇到比较耗时的问题,可以清空FE的元数据目录,再从头开始操作。
(7)启动mysql客户端,访问FE,查看FE状况
[root@hadoop101 fe]# mysql -h hadoop101 -uroot -P9030
mysql> SHOW PROC '/frontends'\G
(8)部署BE
[root@hadoop101 module]# cd StarRocks/be/
[root@hadoop101 be]# mkdir -p storage
(10)使用MySQL客户端添加hadoop101对应be节点
mysql> ALTER SYSTEM ADD BACKEND "hadoop101:9050";
(11)添加完毕后,启动hadoop101 BE节点
[root@hadoop101 be]# bin/start_be.sh --daemon
(12)查看BE服务是否启动成功
BE使用C++编写,使用ps命令查看进程,若发现有starrocks_be进程,即为启动成功:
[root@hadoop101 be]# ps -ef | grep starrocks_be
root 6670 1 1 19:46 pts/0 00:00:00 /opt/module/StarRocks/be/lib/starrocks_be
如果进程状态异常可在BE日志目录中查看日志追踪原因,BE的主要日志在be.INFO中,其他的日志在be.out中。
(13)查看BE状况,也是同样alive为true是正常运行
mysql> SHOW PROC '/backends'\G
(14)部署Broker,此角色主要用于后续Broker load使用,启动安装目录的Broker服务
[root@hadoop101 StarRocks-1.19.1]# cd apache_hdfs_broker/
[root@hadoop101 apache_hdfs_broker]# bin/start_broker.sh --daemon
(15)使用mysql添加对应节点
mysql> ALTER SYSTEM ADD BROKER broker1 "hadoop101:8000";
(16)使用broker是否启动成功
查看java进程,若发现有BrokerBootstrap即为启动成功:
[root@hadoop101 apache_hdfs_broker]# jps | grep BrokerBootstrap
7594 BrokerBootstrap
Broker日志在apache_hdfs_broker.log中,如果进程状态异常可查看日志追踪原因。
(17)查看状态
mysql> SHOW PROC "/brokers"\G
四、使用示例
(1)修改root用户密码
例如修改root密码也为root:
mysql> set password=password('root');
(2)新建数据库
mysql> create database test; Query OK, 0 rows affected (0.01 sec) mysql> use test; Database changed
(3)新建表
StarRocks的副本数是不能大于BE节点数的,由于当前仅有一个BE节点,我们建表时务必注意指定数据为单副本,示例如下:
CREATE TABLE IF NOT EXISTS detail ( event_time DATETIME NOT NULL COMMENT "datetime of event", event_type INT NOT NULL COMMENT "type of event", user_id INT COMMENT "id of user", device_code INT COMMENT "code of device", channel INT COMMENT "" ) DUPLICATE KEY(event_time, event_type) DISTRIBUTED BY HASH(user_id) BUCKETS 8 PROPERTIES ("replication_num"="1"); Query OK, 0 rows affected (0.05 sec)
注意:
如果不指定数据为单副本,执行会报错:ERROR 1064 (HY000): Table replication num should be less than or equal to the number of available BE nodes. You can change this default by setting the replication_num table properties. Current alive backend is [10002]. , table=detail, replication_num=3, default_replication_num=3
(4)插入数据
INSERT INTO detail VALUES('2021-11-18 12:00:00.00',1,1001,1,1); INSERT INTO detail VALUES('2021-11-17 12:00:00.00',2,1001,1,1); INSERT INTO detail VALUES('2021-11-16 12:00:00.00',3,1001,1,1); INSERT INTO detail VALUES('2021-11-15 12:00:00.00',1,1001,1,1); INSERT INTO detail VALUES('2021-11-14 12:00:00.00',2,1001,1,1);
(5)查询数据,5条明细数据都在。此种模型的表用来存储所有历史明细数据。
SELECT * FROM detail;
标签:opt,StarRocks,部署,module,mysql,hadoop101,root,节点 From: https://www.cnblogs.com/yeyuzhuanjia/p/18590756