概述
前置条件
三台Linux机器
Linux(Centos 7+)
Java 1.8
CPU支持avx2指令集(命令cat /proc/cpuinfo |grep avx2有结果代表支持,否则不支持)
获取StarRocks社区版安装包 StarRocks官网
基本概念
- FrontEnd简称FE,是StarRocks的前端节点,负责管理元数据,管理客户端连接,进行查询规划,查询调度等工作。
- BE:BackEnd简称BE,是StarRocks的后端节点,负责数据存储,计算执行,以及compaction,副本管理等工作。
- StarRocks中和外部HDFS/对象存储等外部数据对接的中转服务,辅助提供导入导出功能。
- Tablet: StarRocks中表的逻辑分片,也是StarRocks中副本管理的基本单位,每个表根据分区和分桶机制被划分成多个Tablet存储在不同BE节点上。
熟悉hadoop的可以跟StarRocks做一个对比。
hadoop是分布式的文件系统。
StarRocks是分布式的数据库。
FE -> NAMENODE
BE -> DATANODE
FE与NAMENODE都是管理节点
BE与DATANODE都是存储节点
集群安装
1. 解压安装包
tar -zxvf StarRocks.tar.gz -C /target-dir
配置环境变量 StarRocks_HOME = /target-dir
然后执行source 来刷新当前的shell环境
2. 配置FE
- 进入StarRocks_HOME目录下,修改conf/fe.conf文件
JAVA_OPTS = "-Xmx4096m -XX:+UseMembar -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xloggc:$STARROCKS_HOME/log/fe.gc.log"
根据需要修改-Xmx4096m,因为是测试集群,我这边不做修改
- 创建元数据目录
mkdir -p meta
- 启动进程
bin/start_fe.sh --daemon
// --daemon意思是启动守护线程
此时fe/里面生成了一些文件包括log/,我们可以通过log/fe.log来确认fe是否启动成功
2020-03-16 20:32:14,686 INFO 1 [FeServer.start():46] thrift server started.
2020-03-16 20:32:14,696 INFO 1 [NMysqlServer.start():71] Open mysql server success on 9030
2020-03-16 20:32:14,696 INFO 1 [QeService.start():60] QE service start.
2020-03-16 20:32:14,825 INFO 76 [HttpServer$HttpServerThread.run():210] HttpServer started with port 8030
…
如果包含以上信息则表示启动成功.
如果FE启动失败,可能是由于端口号被占用,修改配置文件conf/fe.conf中的端口号http_port。
使用jps命令查看java进程确认"StarRocksFe"存在。
使用浏览器访问8030端口, 打开StarRocks的WebUI, 用户名为root, 密码为空。
如果还不行,重启/重装解决一切问题UVU。
- 使用mysql打开StarRocks
mysql -h 127.0.0.1 -P9030 -u root
mysql> show proc '/frontends'G;
********************* 1. row ***************************
Name: ***.***.***.***_29011_1642065093675
IP: ***.***.***.***
HostName: cs01
EditLogPort: 29011
HttpPort: 28030
QueryPort: 29030
RpcPort: 29020
Role: FOLLOWER
IsMaster: true
ClusterId: 811127722
Join: true
Alive: true
ReplayedJournalId: 101340
LastHeartbeat: 2022-01-17 15:20:59
IsHelper: true
ErrMsg:
Alive是true的话代表可以了
BE安装
- 进入BE目录下
cd {StarRocks_HOME}/be- 创建storage目录
mkdir -p storage- 通过客户端添加BE
mysql> alter system add backend "host:port" ; -- port 为heartbeat_service_port
如果删除错误,则需要执行一下命令
alter system decommission backend "host:port"; -- 优雅删除BE
- 启动BE
bin/start_be.sh --daemon
- 查看BE的状态
show proc "/backends"G;
如果所有的BE和节点Alive都是true,则代表没问题,否则需要看以一下StarRocks_HOME/be目录下的log文件夹下的日志be.WARNNING,如果依旧 不能解决则decomission节点后重新加入。
部署broker
- 进入对应目录
cd StarRocks_HOME/apache_hdfs_broker/
- 开启对应服务
bin/start_broker.sh --daemon
- 添加节点进入集群中
mysql> ALTER SYSTEM ADD BROKER broker1 "***.***.***.***:8000";
- 查看broker状态
MySQL> SHOW PROC "/brokers"G ;
*************************** 1. row ***************************
Name: broker1
IP: ***.***.***.***
Port: 8000
Alive: true
LastStartTime: 2022-01-17 19:08:35
LastUpdateTime: 2022-01-17 19:08:45
ErrMsg:
1 row in set (0.00 sec)
至此基本部署已经完毕,可以做本地测试和基本使用。
FE的高可用
官网介绍
FE的高可用集群采用主从复制架构, 可避免FE单点故障. FE采用了类raft的bdbje协议完成选主, 日志复制和故障切换. 在FE集群中, 多实例分为两种角色: follower和observer; 前者为复制协议的可投票成员, 参与选主和提交日志, 一般数量为奇数(2n+1), 使用多数派(n+1)确认, 可容忍少数派(n)故障; 而后者属于非投票成员, 用于异步订阅复制日志, observer的状态落后于follower, 类似其他复制协议中的learner角色。
FE集群从follower中自动选出master节点, 所有更改状态操作都由master节点执行, 从FE的master节点可以读到最新的状态. 更改操作可以从非master节点发起, 继而转发给master节点执行, 非master节点记录最近一次更改操作在复制日志中的LSN, 读操作可以直接在非master节点上执行, 但需要等待非master节点的状态已经同步到最近一次更改操作的LSN, 因此读写非Master节点满足顺序一致性. Observer节点能够增加FE集群的读负载能力, 时效性要求放宽的非紧要用户可以读observer节点。
FE节点之间的时钟相差不能超过5s, 使用NTP协议校准时间。
一台机器上只可以部署单个FE节点。所有FE节点的http_port需要相同。
步骤:
- 将节点添加到mysql中
alter system add follower "host:port" ;
- 通过helper命令启动其他的FE
bin/start_fe.sh --helper host:port --daemon
-- host 为主FE的host既你最早打开的FE
-- port 为 edit_log_port
- 打开mysql进行检查
mysql> show proc "/frontends"G;
*************************** 1. row ***************************
Name: ***.***.***.***_29011_1642065093675
IP: ***.***.***.***
HostName: cs01
EditLogPort: 29011
HttpPort: 28030
QueryPort: 29030
RpcPort: 29020
Role: FOLLOWER
IsMaster: true
ClusterId: 811127722
Join: true
Alive: true
ReplayedJournalId: 102253
LastHeartbeat: 2022-01-17 16:11:50
IsHelper: true
ErrMsg:
*************************** 2. row ***************************
Name: ***.***.***.***_29011_1642066329292
IP: ***.***.***.***
HostName: cs03
EditLogPort: 29011
HttpPort: 28030
QueryPort: 29030
RpcPort: 29020
Role: FOLLOWER
IsMaster: false
ClusterId: 811127722
Join: true
Alive: true
ReplayedJournalId: 102252
LastHeartbeat: 2022-01-17 16:11:50
IsHelper: true
ErrMsg:
*************************** 3. row ***************************
Name: ***.***.***.***_29011_1642066332437
IP: ***.***.***.***
HostName: cs02
EditLogPort: 29011
HttpPort: 28030
QueryPort: 29030
RpcPort: 29020
Role: FOLLOWER
IsMaster: false
ClusterId: 811127722
Join: true
Alive: true
ReplayedJournalId: 102252
LastHeartbeat: 2022-01-17 16:11:50
IsHelper: true
ErrMsg:
3 rows in set (0.01 sec)
-- IsMaster 为true代表为主节点
最后
以上就是重要小丸子为你收集整理的StarRocks社区版安装的全部内容,希望文章能够帮你解决StarRocks社区版安装所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复