1-安装与测试
[toc] 本篇主要安装及测试以下组件
- FE:FrontEnd简称FE,是StarRocks的前端节点,负责管理元数据,管理客户端连接,进行查询规划,查询调度等工作。
- BE:BackEnd简称BE,是StarRocks的后端节点,负责数据存储,计算执行,以及compaction,副本管理等工作。
- MySQL-client:MySQL 命令行客户端,可以在服务器连接登录支持mysql协议的DB,StarRocks支持MySQL协议,所以也可以使用
- SSB:Star schema benchmark(以下简称SSB)是学术界和工业界广泛使用的一个星型模型测试集,通过这个测试集合也可以容易的和其他OLAP产品进行性能对比。
一、部署准备
部署环境: 测试时候单机只用到最多8C,内存不超过16G ip|机器配置|FE|BE|MySQL-client|SSB -|-|-|-|-|- 172.16.11.110 |32C60G|❌|✅|❌|❌ 172.16.11.111 |32C60G|❌|✅|❌|❌ 172.16.11.112 |32C60G|❌|✅|❌|❌ 172.16.11.113 |32C60G|✅|✅|✅|✅
部署环境: 测试时候单机只用到最多8C,内存不超过16G 部署组件|部署路径 -|- FE|部署目录:/opt/StarRocks-2.0.0-GA/fe日志目录:/opt/StarRocks-2.0.0-GA/fe/log数据目录:/data/disk01/starrocks/storage BE|部署目录:/opt/StarRocks-2.0.0-GA/be日志目录:/opt/StarRocks-2.0.0-GA/be/log数据存储目录:/data/disk01/starrocks/storage ssb|部署目录:/data/disk01/ssb-poc/操作目录:/data/disk01/ssb-poc/outputmock数据目录:/data/disk01/ssb-poc/output/mock_data
- 下载资源包
wget https://www.starrocks.com/zh-CN/download/request-download/11
- 解压到/opt
tar zxvf StarRocks-2.0.0-GA.tar.gz -C /opt
二、部署FE
- 创建元数据目录
cd /opt/StarRocks-2.0.0-GA/fe/
mkdir -p meta
- 启动FE进程
bin/start_fe.sh --daemon
- 查看日志是否成功启动
- 如果FE启动失败,可能是由于端口号被占用,修改配置文件conf/fe.conf中的端口号http_port。
- 使用jps命令查看java进程确认"StarRocksFe"存在。
- 也可以使用浏览器访问8030端口, 打开StarRocks的WebUI, 用户名为root, 密码为空
三、MySQL客户端访问FE
- 安装mysql-client(如果本机有mysql-client可以忽略此步骤)
rpm -ivh https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
yum install mysql-community-client.x86_64 -y
#安装失败GPG Key
#修改mysql-community.repogpgcheck=0
#再重新安装
- 连接starrocks
mysql -h 127.0.0.1 -P9030 -uroot
- 查看FE状态:
mysql> SHOW PROC '/frontends'\G
*************************** 1. row ***************************
Name: 172.16.11.113_9010_1643166244538
IP: 172.16.11.113
HostName: cdh-node8
EditLogPort: 9010
HttpPort: 8030
QueryPort: 9030
RpcPort: 9020
Role: FOLLOWER
IsMaster: true
ClusterId: 350656662
Join: true
Alive: true
ReplayedJournalId: 663
LastHeartbeat: 2022-01-26 11:40:51
IsHelper: true
ErrMsg:
StartTime: 2022-01-26 11:04:17
Version: 2.0.0-GA-2ffdf30
1 row in set (0.01 sec)
Role为FOLLOWER说明这是一个能参与选主的FE;IsMaster为true,说明该FE当前为主节点。
四、部署BE
- 创建数据目录
cd /opt/StarRocks-2.0.0-GA/be/
mkdir -p /data/disk01/starrocks/storage
#修改be配置,添加配置
storage_root_path = /data/disk01/starrocks/storage
- 通过mysql客户端添加BE节点
mysql>ALTER SYSTEM ADD BACKEND "172.16.11.113:9050";
mysql>ALTER SYSTEM ADD BACKEND "172.16.11.112:9050";
mysql>ALTER SYSTEM ADD BACKEND "172.16.11.111:9050";
# 这里IP地址为和priority_networks设置匹配的IP,portheartbeat_service_port,默认为9050
#如出现错误,需要删除BE节点,应用下列命令:
#alter system decommission backend "be_host:be_heartbeat_service_port";
- 启动BE:
/opt/StarRocks-2.0.0-GA/be/bin/start_be.sh --daemon
- 查看BE状态, 确认BE就绪
mysql> SHOW PROC '/backends'\G
*************************** 1. row ***************************
BackendId: 10003
Cluster: default_cluster
IP: 172.16.11.113
HostName: cdh-node8
HeartbeatPort: 9050
BePort: 9060
HttpPort: 8040
BrpcPort: 8060
LastStartTime: 2022-01-26 11:49:21
LastHeartbeat: 2022-01-26 11:49:46
Alive: true
SystemDecommissioned: false
ClusterDecommissioned: false
TabletNum: 10
DataUsedCapacity: .000
AvailCapacity: 930.853 GB
TotalCapacity: 984.179 GB
UsedPct: 5.42 %
MaxDiskUsedPct: 5.42 %
ErrMsg:
Version: 2.0.0-GA-2ffdf30
Status: {"lastSuccessReportTabletsTime":"2022-01-26 11:49:21"}
DataTotalCapacity: 930.853 GB
DataUsedPct: 0.00 %
1 row in set (0.00 sec)
如果isAlive为true,则说明BE正常接入集群。如果BE没有正常接入集群,请查看log目录下的be.WARNING日志文件确定原因。
五、性能测试
- 下载ssb-poc工具包并编译
wget https://starrocks-public.oss-cn-zhangjiakou.aliyuncs.com/ssb-poc-0.9.3.zip
unzip ssb-poc-0.9.3.zip
mv ssb-poc-0.9.3 /data/disk01
cd /data/disk01/ssb-poc-0.9.3/ssb-poc
make && make install
所有相关工具都会安装到output目录
- 生成100G数据脚本
cd output
chmod +x bin/*.sh
bin/gen-ssb.sh 100 mock_data
- 执行建表语句
# 测试100G数据
bin/create_db_table.sh ddl_100
完成后我们创建了6张表:lineorder, supplier, dates, customer, part, lineorder_flat 数量最大的表6亿条
- 通过stream load导入数据
sudo sh bin/stream_load.sh mock_data
- 首先在客户端执行命令,修改并行度(类似clickhouse set max_threads = 8)
# 设置并行度,建议是每个集群节点逻辑核数的一半,以下以8为例
set global parallel_fragment_exec_instance_num = 8;
修改配置文件:ssb-poc/output/conf/starrocks.conf
[starrocks]
# for mysql cmd
# 从test1改为FE的ip或者host
mysql_host: 172.16.11.113
- 测试ssb多表查询 (SQL 参见 share/ssb_test/sql/ssb/):
bin/benchmark.sh -p -d ssb
- 测试结果
- 向宽表中插入数据:
bin/flat_insert.sh
- 测试宽表性能:
bin/benchmark.sh -p -d ssb-flat
六、问题
多网卡导致启动失败
wait catalog to be ready. FE type: UNKNOWN. is ready: false
- 第一次启动失败,因为存在多网卡,解决办法,修改fe.conf,增加priority_networks = 172.16.11.0/24
- 如果还是启动不了,查看日志,FOLLOWER and node name: 依然是原来网卡地址
- 删除mete目录下的文件,再次重启,用新网卡配置启动成功
No module named ‘PyMySQL’
在执行导入测试表,python3或者PyMySQL依赖库找不到
- 云主机一般都带有python3,通过
python3 -v
、pip3 list
验证是否安装,如果没有安装安装一下即可 - 安装好python3之后用,pip3安装pymysql