
【上篇】本次采用StarRocks 单机FE、BE部署。本篇内容:单实例部署StarRocks FE/BE部署前期准备,StarRocks单实例部署过程见下篇。后续将扩容至3台。



0.ENV

0.1 基本配置
1) 硬件情况
服务器硬件(虚拟机3台,后续两台做扩容):
CPU:4C
内存:8G
硬盘:sda 300G(系统), sdb 300G(数据) 单独挂载在doridb目录下。
2) 软件清单
CentOS:7.7.1908
StarRocks-2.2.0.tar.gz
jdk-8u281-linux-x64.tar.gz
mysql-5.7.33-el7-x86_64.tar.gz
0.2 组件清单-角色划分
hosts ROLE
sr01 FE Leader/BE
sr02 FE OBSERVER/BE [后续扩容]
sr03 Broker/BE [后续扩容]
sr01上部署FE FOLLOWER使其成为Leader,同时部署BE;
sr02上部署FE令其作为OBSERVERr,同时部署BE[后续扩容节点];
sr03部署一个Broker方便后面学习数据导入,同时部署BE[后续扩容节点]。
有关StarRocks架构详细介绍,详见前述文章《StarRocks简介》章节"3. 架构介绍"。

1. 主机名配置

1) 主机名设置
hostnamectl set-hostname sr01
复制
2) 增加hosts解析
echo "192.168.80.31 sr01" >> /etc/hosts
复制

2. 关闭Swap分区

内存页(page)swap到磁盘会影响sr的性能,需要关闭。
2.1 临时关闭
free -h
swapoff -a
free -h
复制
2.2 永久关闭
1) 注释掉/etc/fstab中的swap信息
注释swap
sed -i 's/\/dev\/mapper\/centos-swap/#\/dev\/mapper\/centos-swap/g' etc/fstab
复制
查看注释结果
grep swap etc/fstab
#/dev/mapper/centos-swap swap swap defaults 0 0
复制
2) 调整swappiness参数
echo vm.swappiness=0 >> etc/sysctl.conf
3) 重启生效
当前已临时关闭,不需要要重启
reboot
复制
4)验证(Swap行均为0)
free -h
复制

3. 关闭操作系统selinux

查看selinux状态
getenforce
复制
临时关闭
setenforce 0
复制
永久关闭状态-需重启,临时关闭后不需要重启
sed -i 's/=enforcing/=disabled/g' etc/selinux/config
复制

4. 关闭操作系统防火墙

安装期间避免端口不能访问而导致的异常,可以关闭防火墙,详见4.1,也可以打开sr对应防火墙端口,详见4.2。
4.1 关闭防火墙操作
firewall[CentOS7/8]
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
复制
iptables[CentOS5/6]
chkconfig iptables off
service iptables status
service iptables stop
复制
4.2 开放防火墙端口
1) sr标准版端口
8000、8030、8040、8060、9010、9020、9030、9050、9060
2) 逐个开放端口
firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --zone=public --add-port=8030/tcp --permanent
firewall-cmd --zone=public --add-port=8040/tcp --permanent
firewall-cmd --zone=public --add-port=8060/tcp --permanent
firewall-cmd --zone=public --add-port=9010/tcp --permanent
firewall-cmd --zone=public --add-port=9020/tcp --permanent
firewall-cmd --zone=public --add-port=9030/tcp --permanent
firewall-cmd --zone=public --add-port=9050/tcp --permanent
firewall-cmd --zone=public --add-port=9060/tcp --permanent
复制
关闭端口参考
firewall-cmd --zone=public --remove-port=8000/tcp --permanent
复制
3) 配置立即生效
firewall-cmd --reload
复制
4) 查看所有开放端口
firewall-cmd --zone=public --list-ports
复制

5. 主机时间同步

单实例FE、BE时,不涉及各节点时间同步,为了和其它业务系统进行交互,建议设置ntp。
注:在StarRocks集群中,FE所在服务器的时钟最多允许5秒时钟偏差,需要进行时间同步。
1) 安装ntp
yum -y install ntp
复制
2) 校准时间
ntpdate cn.pool.ntp.org
复制
3) 使用crontab定时计划任务
crontab -e
00 12 * * * sbin/ntpdate cn.pool.ntp.org
复制
[表示每隔12个小时同步一次。规则:分、时、日、月、星期]
4) 重启crontab计划任务
systemctl reload crond
复制
5) 查看时间
date
复制

6. 设置文件描述符限制

文件描述符限制过小会导致StarRocks BE启动报错,永久设置操作如下:
1) 修改limits.conf
修改
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 65536" >> /etc/security/limits.conf
复制
查看
cat etc/security/limits.conf
复制
2) 查看更改生效-需要重新登录会话
ulimit -n
复制

7. 配置GCC环境

StarRocks要求GCC 4.8.2+。
1) 各主机安装gcc
yum -y install gcc
复制
2) 查看安装后版本
gcc --version
...
sr01 | CHANGED | rc=0 >>
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44) #当前4.8.5,gcc4.8.2以上均可
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
...
复制

8. 安装配置JDK8

8.1 安装包准备
jdk8官网下载链接如下:
https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html
下载版本:jdk-8u281-linux-x64.tar.gz
8.2 检查并移除自带jdk
查看CentOS是否自带openjdk环境:
yum list installed |grep java
复制
若有自带安装的JDK,卸载命令:
yum -y remove java-1.7.0-openjdk*
yum -y remove java-1.8.0-openjdk*
复制
8.3 安装
1) 创建安装目录
mkdir usr/java
复制
2) 解压jdk安装包
tar -zxvf soft/jdk-8u281-linux-x64.tar.gz -C usr/java/
复制
3) 配置环境变量
配置sr01主机/etc/profile
cat >> etc/profile << RUNDBA
##### jdk enviroument #####
export JAVA_HOME=/usr/java/jdk1.8.0_281
export PATH=\$JAVA_HOME/bin:\$PATH
export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar
##############################
RUNDBA
复制
4) 查看java版本
当前java版本均为1.8.0_281
/usr/java/jdk1.8.0_281/bin/java -version
复制

9. mysql安装

StarRocks推荐使用mysql-client来连接,接下来,我们在sr01上安装稳定版的mysql 5.7。
9.1 mysql下载
MySQL5.7 General Availability(GA) Release通用发行版下载地址:
https://dev.mysql.com/downloads/mysql/5.7.html
系统选择Red Hat Enterprise Linux/Oracle Linux;
OS版本选择:Red Hat Enterprise Linux 7/Oracle Linux 7(x86,64bit)
然后选择Compressed TAR Archive进行下载。
下载后介质:mysql-5.7.33-el7-x86_64.tar.gz。
9.2 mysql安装
mysql安装到sr01主机上
1) 卸载mariadb
当前是否已安装mariadb
rpm -qa|grep mariadb
复制
卸载mariadb,确保相关的mariadb包均已卸载
rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64
复制
2) 上传
上传至/soft
并安装mysql
3) 解压部署包
cd /soft
tar -zxvf mysql-5.7.33-el7-x86_64.tar.gz
复制
4) 重命名为mysql,并移动至/usr/local/
mv mysql-5.7.33-el7-x86_64 usr/local/mysql
复制
5) 创建mysql用户
检查mysql组和用户是否存在,如果没有则创建:
cat etc/group|grep mysql
复制
创建:
groupadd mysql
useradd -r -g mysql mysql
复制
useradd -r参数表示mysql用户是系统用户,不可用于登录系统。
6) 在mysql文件夹中创建data目录
cd usr/local/mysql
mkdir data
复制
7) 将/usr/local/mysql的所有者及所属组改为mysql
chown -R mysql.mysql usr/local/mysql
复制
8) 在/usr/local/mysql/support-files目录下创建my_default.cnf
cd usr/local/mysql/support-files
vim my_default.cnf #粘贴如下配置并保存
复制
[mysqld]
#设置mysql的安装目录
basedir = usr/local/mysql
#设置mysql数据库的数据存放目录
datadir = usr/local/mysql/data
socket = usr/local/mysql/mysql.sock
#设置字符集
character-set-server = utf8
#日志存放目录
log-error = usr/local/mysql/data/mysqld.log
pid-file = usr/local/mysql/data/mysqld.pid
[client]
port = 3306
socket = usr/local/mysql/mysql.sock
复制
9) 将配置文件拷贝至etc目录
cp my_default.cnf /etc/my.cnf
复制
10) 环境变量配置
打开etc目录profile文件:
cat >> /etc/profile << EOF
##### mysql conf #####
export MYSQL_HOME=/usr/local/mysql
export PATH=\$PATH:\$MYSQL_HOME/bin
#########################
EOF
复制
使环境变量生效
source /etc/profile
复制
11) 初始化mysql
cd /usr/local/mysql
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
复制
12) 在初始化日志中查看密码
[root@starrocks01 mysql]# grep password /usr/local/mysql/data/mysqld.log
2021-04-24T14:55:58.571946Z 1 [Note] A temporary password is generated for root@localhost: e=3jfIqBQciJ
复制
13) mysqld服务添加
把启动脚本放到开机初始化目录
cp support-files/mysql.server /etc/init.d/mysqld
复制
赋予可执行权限
chmod +x /etc/init.d/mysqld
复制
添加为服务
chkconfig --add mysqld
复制
启动服务
systemctl start mysqld
复制
查看运行状态
systemctl status mysqld
复制
14) 进入mysql并更改密码
mysql -uroot -p
复制
先按回车,待提示输入密码时再输入密码,不要在-p后面直接加密码,因为随机生成的密码可能包含左括号,而Linux对左括号敏感,直接输入可能会报错。
修改密码为自己的密码,比如root:
set password=password('demo_415');
复制
15) 给用户授权
grant all privileges on *.* to root@'%' identified by 'demo_415';
flush privileges;
复制
16) 重启mysql服务
systemctl restart mysqld
mysql -uroot -p #demo_415
复制

10. 小结

单实例部署StarRocks FE/BE部署前期准备工作完成,StarRocks单实例部署过程见下篇。
—END—
