单机部署StarRocks3.0.4

使用root用户通过XShell工具访问服务器,单节点架构设计如下:
一、机器节点 192.168.6.130 (starrocks)
二、部署服务
1 FE(Leader)
1 BE
1 Broker
mysql-client
三、部署目录及数据目录设计如下,后续的部署操作严格按照部署设计进行:
1、FE
部署目录:/opt/module/starrocks/fe
日志目录:/opt/module/starrocks/fe/log(默认)
元数据目录:/opt/meta – 不配置启动不起来
2、BE
部署目录:/opt/module/starrocks/be
日志目录:/opt/module/starrocks/be/log(默认)
数据目录:/opt/storage
3、Broker
部署目录:/opt/module/starrocks/apache_hdfs_broker
开始部署:
下载好的部署包上传至/opt/software/starrocks
解压部署包:

tar -zxvf StarRocks-3.0.4.tar.gz -C /opt/module/
mv StarRocks-3.0.4 starrocks

创建元数据存储目录:

mkdir /opt/meta

查看安装了那些jdk
rpm -qa | grep java

自带的JDK不完整,删除之

rpm -e --nodeps java-1.8.0-openjdk-1.8.0.372.b07-1.el7_9.x86_64 
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.372.b07-1.el7_9.x86_64 
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64 
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
查找安装JDK
yum -y list java*  -- 列出可安装的版本
 
yum install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64
JAVA_HOME 配置
vim /etc/profile
### 将以下变量添加到文件末尾

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-1.el7_9.x86_64/
export JRE_HOME=$JAVA_HOME/jre  
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH  
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH  

source /etc/profile

修改配置文件,通常不用修改
vi /opt/module/starrocks/fe/conf/fe.conf
meta_dir = /opt/meta
priority_networks = 192.168.6.130
启动FE
cd /opt/module/starrocks/fe/bin/
./start_fe.sh --daemon
查看进程
jps
使用mysql-client访问FE
mysql -h192.168.6.130 -P9030 -uroot
mysql> show frontends\G

Alive为true即说明FE节点状态正常。

添加实例进入集群:
mysql> alter system add backend '192.168.6.130:9050';
mysql> alter system add broker hdfs_broker '192.168.6.130:8000';
可使用dropp命令删除:mysql> alter system dropp backend '192.168.6.130:9050';

部署BE

新建BE数据存储目录
mkdir /opt/storage
修改配置文件
vi /opt/module/starrocks/be/conf/be.conf
priority_networks = 192.168.6.130
storage_root_path = /opt/storage
启动BE
cd /opt/module/starrocks/be/bin/
./start_be.sh --daemon
查看进程 有starrocks_be进程,即为启动成功
ps -ef | grep starrocks_be
查看BE状态
mysql -h192.168.6.130 -P9030 -uroot
mysql> show backends\G

一般Alive为true即为状态正常。若为false,可根据日志排查问题。同样的,因为当前BE为初次启动,如果出现无法快速定位的问题,可以清空storage数据目录,重新启动服务。

退出
mysql> exit;
启动Broker
cd /opt/module/starrocks/apache_hdfs_broker/bin/

./start_broker.sh --daemon
查看进程
jps | grep BrokerBootstrap
查看Broker状态
mysql -h192.168.6.130 -P9030 -uroot
mysql> show broker\G

简单使用示例
root密码也为root:

mysql> set password=password('root');

新建一个starrocks数据库:

mysql> create database starrocks;

所有mysql的操作都可以在mysql客户端进行,和操作mysql数据库一样。

web 访问

http://192.168.6.130:8030

简单使用

创建表 test

CREATE TABLE `starrocks`.`test`  (
  `id`    INTEGER NOT NULL ,
  `name`  VARCHAR(100) NULL ,
  `value` VARCHAR(100) NULL 
) 

报错:

> 1064 - Create olap table should contain distribution desc

修改:

CREATE TABLE `starrocks`.`test`  (
  `id`    INTEGER NOT NULL ,
  `name`  VARCHAR(100) NULL ,
  `value` VARCHAR(100) NULL 
)
DISTRIBUTED BY HASH(`id`) BUCKETS 10

报错:

> 1064 - Unexpected exception: Unable to find 3 alive nodes on different hosts to create 3 replicas

修改:
由于是单机部署,只有一个fe

CREATE TABLE `starrocks`.`test`  (
  `id`    INTEGER NOT NULL ,
  `name`  VARCHAR(100) NULL ,
  `value` VARCHAR(100) NULL 
)
DISTRIBUTED BY HASH(`id`) BUCKETS 10
PROPERTIES
(
"replication_num" = "1"
);

报错:

> 1064 - Unexpected exception: Can't create table 'test' (errno: table already exists)

创建一个新的数据库

create database example_db;
CREATE TABLE `example_db`.`test`  (
  `id`    INTEGER NOT NULL ,
  `name`  VARCHAR(100) NULL ,
  `value` VARCHAR(100) NULL 
)
DISTRIBUTED BY HASH(`id`) BUCKETS 10
PROPERTIES
(
"replication_num" = "1"
);

成功!

StarRocks的四种数据模型分别是:明细模型,聚合模型,更新模型和主键模型
它们的使用可以参考:https://blog.csdn.net/weixin_46429290/article/details/129958801

下面创建一个主键模型的表:

CREATE TABLE `DIM_部门`  (
  `部门ID`         VARCHAR(100) NOT NULL,
  `部门编号`       VARCHAR(20)  NULL,
  `部门名称`       VARCHAR(20)  NULL,
  `部门等级`       INT          NOT NULL,
  `部门类型ID`     CHAR(36)     NULL,
  `部门类型`       VARCHAR(20)  NULL,
  `上级部门ID`     CHAR(36)     NULL,
  `部门是否有效`   TINYINT      NOT NULL,
  `部门负责人ID`   CHAR(36)     NOT NULL,
  `部门负责人`     VARCHAR(20)  NULL,
  `部门负责人电话` VARCHAR(20)  NULL,
  `数据创建时间`   DATETIME     NULL,
  `数据更新时间`   DATETIME     NULL 
)PRIMARY KEY (`部门ID`) 
DISTRIBUTED BY HASH(`部门ID`) BUCKETS 4
PROPERTIES(
  "replication_num" = "1",
  "enable_persistent_index" = "true"
  );

插入数据:

INSERT INTO `DIM_部门` 
VALUES 
('E5517C05-E7A5-4989-A373-0033578B70F8', '2022091701', '河北', 4, 'C5564066-04E8-4008-AF5C-467020D95083', '片区', 'BC3EE6A0-C5E6-4C62-A13A-B35FAF4C88C7', '0', 'D0DCD358-75B7-49AB-B1EA-AA997C9A0B3C', '刘老师', '18900000000', '2023-06-02 17:06:10.2859327', '2023-08-10 19:02:02.6732241'),
('14ED47DC-DFA5-4C76-B5BB-00A1EA15AC07', '1', '销售部(总部)', 2, 'B9838269-780B-4B5E-8848-ACF6A5FD5370', '部门', 'ACEDF115-2EA2-43CE-909D-2E5317A22EB2', '0', 'A4233B06-A028-46F0-B604-BDD4776ED2C4', '黄老师', '18800000000', '2023-06-02 17:06:10.2859327', '2023-08-10 19:02:02.6732241')

报错:

> 1064 - Insert has filtered data in strict mode, txn_id = 14 tracking sql = select tracking_log from information_schema.load_tracking_logs where job_id=12200

经查,是部门名称 列过短造成的。

ALTER TABLE `DIM_部门` MODIFY COLUMN `部门名称` VARCHAR(200);

DESC  `DIM_部门` 

INSERT INTO `DIM_部门` 
VALUES 
('E5517C05-E7A5-4989-A373-0033578B70F8', '2022091701', '河北', 4, 'C5564066-04E8-4008-AF5C-467020D95083', '片区', 'BC3EE6A0-C5E6-4C62-A13A-B35FAF4C88C7', '0', 'D0DCD358-75B7-49AB-B1EA-AA997C9A0B3C', '刘老师', '18900000000', '2023-06-02 17:06:10.2859327', '2023-08-10 19:02:02.6732241'),
('14ED47DC-DFA5-4C76-B5BB-00A1EA15AC07', '1', '销售部', 2, 'B9838269-780B-4B5E-8848-ACF6A5FD5370', '部门', 'ACEDF115-2EA2-43CE-909D-2E5317A22EB2', '0', 'A4233B06-A028-46F0-B604-BDD4776ED2C4', '黄老师', '18800000000', '2023-06-02 17:06:10.2859327', '2023-08-10 19:02:02.6732241')

插入成功!且可多次插入同一主键的数据,视作更新。

接下来就可以用Navicat 直接从sqlserver或其他数据库,直接向此表复制数据了。

StarRocks 运维工具 StarGo ,了解一下
starrocks 部署,参考一下:https://blog.csdn.net/wr_java/article/details/129876573

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值