栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

StarRocks社区版安装

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

StarRocks社区版安装

前置条件

三台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代表为主节点
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/709794.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号