@andy2015
2024-10-07T19:03:57.000000Z
字数 10568
阅读 129
OLAP
一、安装要求
二、环境配置
hosts配置
vim /etc/hosts
192.168.132.64 st.master.node2 sr.fe.node2 ds.master.node2 ss.query.server
192.168.132.211 st.master.node1 sr.fe.node1 ds.worker.node1
192.168.132.212 st.worker.node1 sr.be.node1 ds.worker.node2
192.168.132.213 st.worker.node2 sr.be.node2 ds.worker.node3
192.168.132.214 st.worker.node3 sr.be.node3 ds.master.node1
JAVA_HOME配置
vim /etc/profile
sudo vi /etc/profile
# 将 <path_to_JDK> 替换为 JDK 的安装路径。
export JAVA_HOME=<path_to_JDK>
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
CPU Scaling Governor用于控制 CPU 能耗模式。如果您的 CPU 支持该配置项,建议您将其设置为 performance 以获得更好的 CPU 性能:
echo 'performance' | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
内存设置
1). Memory Overcommit允许操作系统将额外的内存资源分配给进程
cat >> /etc/sysctl.conf << EOF
vm.overcommit_memory=1
EOF
# 使修改生效。
sysctl -p
2). Transparent Huge Pages默认启用。因其会干扰内存分配,进而导致性能下降,建议您禁用此功能。
# 临时变更。
echo madvise | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
echo madvise | sudo tee /sys/kernel/mm/transparent_hugepage/defrag
# 永久变更。
cat >> /etc/rc.d/rc.local << EOF
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo madvise > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo madvise > /sys/kernel/mm/transparent_hugepage/defrag
fi
EOF
chmod +x /etc/rc.d/rc.local
3).Swap Space建议禁用
关闭swap space
swapoff /dev/mapper/centos-swap
swapoff -a
从 /etc/fstab 文件中删除 Swap Space 信息。
/<path_to_swap_space> swap swap defaults 0 0
Swappiness会对性能造成影响,因此建议您禁用 Swappiness
# 修改配置文件。
cat >> /etc/sysctl.conf << EOF
vm.swappiness=0
EOF
# 使修改生效。
sysctl -p
存储设置
cat /sys/block/${disk}/queue/scheduler
# 例如,运行 cat /sys/block/vdb/queue/scheduler
SELinux
# 永久变更。
sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
sed -i 's/SELINUXTYPE/#SELINUXTYPE/' /etc/selinux/config
防火墙(两种方式二选一)
1). 授权相关端口
sudo firewall-cmd --zone=public --add-port=8030/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9020/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9030/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9010/tcp --permanent
sudo firewall-cmd --zone=public --add-port=6090/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8040/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8060/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9050/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9060/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9070/tcp --permanent
sudo firewall-cmd --reload
2). 禁用防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
LANG 变量
# 修改配置文件。
echo "export LANG=en_US.UTF8" >> /etc/profile
# 使修改生效。
source /etc/profile
时区设置
cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock
ulimit 设置: 如果最大文件描述符和最大用户进程的值设置得过小,StarRocks 运行可能会出现问题。
cat >> /etc/security/limits.conf << EOF
* soft nproc 65535
* hard nproc 65535
* soft nofile 655350
* hard nofile 655350
* soft stack unlimited
* hard stack unlimited
* hard memlock unlimited
* soft memlock unlimited
EOF
cat >> /etc/security/limits.d/20-nproc.conf << EOF
* soft nproc 65535
root soft nproc 65535
EOF
文件系统挂载类型
建议您使用 ext4 或 xfs 日志文件系统。您可以运行以下命令来检查挂载类型:
df -Th
网络配置
1). tcp_abort_on_overflow如果系统当前因后台进程无法处理的新连接而溢出,则允许系统重置新连接:‘
# 修改配置文件。
cat >> /etc/sysctl.conf << EOF
net.ipv4.tcp_abort_on_overflow=1
EOF
# 使修改生效。
sysctl -p
2). somaxconn设置监听 Socket 队列的最大连接请求数为 1024:
# 修改配置文件。
cat >> /etc/sysctl.conf << EOF
net.core.somaxconn=1024
EOF
# 使修改生效。
sysctl -p
NTP设置,服务器时间同步
# 查看 NTP 时间服务器或 Chrony 服务是否存在
rpm -qa | grep ntp
systemctl status chrony
# 如不存在,运行以下命令安装 NTP 时间服务器
sudo yum install ntp ntpdate && \
sudo systemctl start ntpd.service && \
sudo systemctl enable ntpd.service
# 检查 NTP 服务
systemctl list-unit-files | grep ntp
# 检查服务是否与 NTP 服务器同步
ntpstat
# 检查网络中的NTP服务器
高并发配置
1). max_map_count进程可以拥有的 VMA(虚拟内存区域)的数量。将该值调整为 262144
# 修改配置文件。
cat >> /etc/sysctl.conf << EOF
vm.max_map_count = 262144
EOF
# 使修改生效。
sysctl -p
2). 其他
echo 120000 > /proc/sys/kernel/threads-max
echo 200000 > /proc/sys/kernel/pid_max
三、下载&分发安装包
四、安装
FE
1). 创建日志、元数据目录并配置STARROCKS_HOME
mkdir -p /data/starrocks/log
mkdir -p /data/starrocks/meta
cat >> /etc/profile << EOF
export STARROCKS_HOME=/opt/starrocks-3.2.9
EOF
2). 修改fe配置文件
vim conf/fe.conf
3). 启动服务
sudo bin/start_fe.sh --deamon
cat log/fe.log | grep thrift
BE
1). 创建日志、数据目录并配置STARROCKS_HOME
mkdir -p /data/starrocks/log
mkdir -p /data/starrocks/storage
cat >> /etc/profile << EOF
export STARROCKS_HOME=/opt/starrocks-3.2.9
EOF
2). 修改be配置文件
vim conf/be.conf
3). 启动服务
sudo bin/start_be.sh --deamon
cat log/be.INFO | grep thrift
cat log/be.INFO | grep heartbeat
建立HA集群信息
1). MySQL 客户端连接到 StarRocks: 用户名root,密码默认为空
2). 查看 Leader FE 节点状态
SHOW PROC '/frontends'\G
其他FE节点
// 角色:FOLLOWER 复制协议的可投票成员,参与选主和提交日志,一般数量为奇数(2n+1),使用多数派(n+1)确认,可容忍少数派(n)故障
// 角色:OBSERVER 属于非投票成员,用于异步订阅复制日志,Observer 的状态落后于 Follower,类似其他复制协议中的 Learner 角色。
// 参数:
// host:机器的 IP 地址。如果机器存在多个 IP 地址,则该项为 priority_networks 设置项下设定的唯一通信 IP 地址。
// port:edit_log_port 设置项下设定的端口,默认为 9010。
ALTER SYSTEM ADD FOLLOWER "host:port";
FE节点,首次启动
sh bin/start_fe.sh --helper host:port --daemon
3). 添加BE节点到集群
-- 将 替换为 BE 节点的 IP 地址(priority_networks)或 FQDN,
-- 并将 (默认:9050)替换为您在 be.conf 中指定的 heartbeat_service_port。
ALTER SYSTEM ADD BACKEND ":", ":", ":";
4). 查看 BE 节点状态
SHOW PROC '/backends'\G
5). 修改root账号密码Bt@tst-sr08
SET PASSWORD = PASSWORD('')
Superset安装
1). 安装python3
yum install python3
pip install --trusted-host pypi.python.org starrocks
2). 安装 Docker 和 Docker Compose
sudo yum update -y
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum install docker
sudo systemctl start docker
sudo systemctl enable docker
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
3). 安装Superset
git clone --depth=1 https://github.com/apache/superset.git
cd superset
docker-componse up -d
4). 本地安装
官网提示 【在 CentOS 系统上 you may need to upgrade pip for the install to work】
pip3 install --upgrade pip
安装虚拟环境
pip3 install virtualenv
pip install --upgrade pip
pip install apache-superset
pip install sqlalchemy==1.3.24
pip install sqlalchemy-utils==0.36.6
pip install cryptography==38.0.1
初始化数据库
pip install dataclasses
superset db upgrade
创建一个admin用户(在设置密码之前,会提示你设置用户名,姓和名)
export FLASK_APP=superset
superset fab create-admin
加载一些数据【爬取数据 很慢 未成功将导致缺少样例图表 不影响后续使用】这一步是可以跳过的
pip install scrapy
superset load_examples
创建默认角色和权限
superset init
宿主机上执行
yum install mysql-devel
yum install freetds
安装驱动
pip install mysqlclient
pip install starrocks
pip install PyMySQL eg. mysql+pymysql://testuser:123456@127.0.0.1:3306/testdb
pip install psycopg2
pip install cx_Oracle
在8082端口上启动一个开发web服务器【可使用 -p 绑定到其他端口 -h 绑定到特定 IP】
superset run -h 192.168.132.211 -p 8082 --with-threads --reload --debugger
. venv/bin/activate
superset run -h 192.168.132.211 -p 8082 --with-threads --reload --debugger
退出虚拟环境
deactivate
五、Prometheus安装
1、Prometheus下载
wget https://github.com/prometheus/prometheus/releases/download/v2.45.0/prometheus-2.45.0.linux-amd64.tar.gz
2、Prometheus配置
1)切换至/opt目录:
[root@manager ~]# cd /opt
2)解压安装包:
[root@manager opt]# tar xvf prometheus-2.45.0.linux-amd64.tar.gz
3)为方便后续程序升级,将解压后的目录重命名为prometheus:
[root@manager opt]# mv prometheus-2.45.0.linux-amd64 prometheus
4)创建数据存放目录:
[root@manager opt]# mkdir prometheus/data
5)prometheus官方只提供了二进制文件tar包,为了方便管理,我们可以创建prometheus系统服务启动文件:
[root@manager opt]# vim /etc/systemd/system/prometheus.service
输入:
[Unit]
Description=Prometheus service
After=network.target
[Service]
User=root
Type=simple
ExecReload=/bin/sh -c "/bin/kill -1 `/usr/bin/pgrep prometheus`"
ExecStop=/bin/sh -c "/bin/kill -9 `/usr/bin/pgrep prometheus`"
ExecStart=/opt/prometheus/prometheus --config.file=/opt/prometheus/prometheus.yml --storage.tsdb.path=/opt/prometheus/data --storage.tsdb.retention.time=30d --storage.tsdb.retention.size=30GB
[Install]
WantedBy=multi-user.target
保存退出。
说明:当使用其他目录部署时,注意ExecStart命令中的目录需要同步修改一致。此外,在启动参数中我们还配置了Prometheus中数据存储的过期条件为“30天”或“大于30GB”,可以按需修改。
6)修改prometheus配置文件prometheus/prometheus.yml,这个文件中的配置内容对格式要求比较严格,修改时需要特别注意空格和缩进。或者我们可以将原始配置文件重命名,然后粘贴下发需用的内容。
修改原配置文件文件名:
[root@manager opt]# mv prometheus/prometheus.yml prometheus/prometheus_bak.yml
使用StarRocks集群信息创建配置文件prometheus.yml:
[root@manager opt]# vim prometheus/prometheus.yml
输入:
global:
scrape_interval: 15s #全局的采集间隔,默认是1m,这里设置为15s
evaluation_interval: 15s #全局的规则触发间隔,默认是1m,这里设置15s
scrape_configs:
- job_name: 'StarRocks_Cluster01' #每一个集群称之为一个job,可以自定义名字作为StarRocks集群名
metrics_path: '/metrics' #指定获取监控项目的Restful API
static_configs:
- targets: ['192.168.110.101:8030','192.168.110.102:8030','192.168.110.103:8030']
labels:
group: fe #这里配置了FE的group,该group中包含了3个FE节点,需填写各个FE对应的IP和http端口。若部署集群时修改过该端口,这里注意进行调整
- targets: ['192.168.110.101:8040','192.168.110.102:8040','192.168.110.103:8040']
labels:
group: be #这里配置了BE的group,该group中包含了3个BE节点,需填写各个BE对应的IP和http端口。若部署集群时修改过该端口,这里注意进行调整。
在配置文件创建完成后,可使用promtool检查配置文件语法是否合规,例如:
[root@manager opt]# ./prometheus/promtool check config prometheus/prometheus.yml
当看到提示检查通过后,再执行后续操作:
SUCCESS: prometheus/prometheus.yml is valid prometheus config file syntax
7)启动服务:
[root@manager opt]# systemctl daemon-reload
[root@manager opt]# systemctl start prometheus.service
8)查看服务状态:
[root@manager opt]# systemctl status prometheus.service
观察Active: active (running)即为启动成功。
prometheus默认使用的端口为9090,也可以使用netstat命令查看9090端口的状态:
[root@manager opt]# netstat -nltp | grep 9090
9)设置开机启动:
[root@manager opt]# systemctl enable prometheus.service
其他相关命令:
停止服务:systemctl stop prometheus.service
重启服务:systemctl restart prometheus.service
热加载配置:systemctl reload prometheus.service
禁用开机启动:systemctl disable prometheus.service
3、Web访问
Prometheus可以通过Web页面进行简单的访问。通过浏览器访问其默认的9090端口,即可访问Prometheus的页面。例如,我们使用谷歌浏览器访问192.168.110.23:9090。
五、Grafana
1、Grafana下载
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-10.0.3-1.x86_64.rpm
2、Grafana安装
1)使用yum命令安装,方便自动安装依赖:
[root@manager opt]# yum -y install grafana-enterprise-10.0.3-1.x86_64.rpm
2)启动grafana:
[root@manager opt]# systemctl start grafana-server.service
3)查看状态:
[root@manager opt]# systemctl status grafana-server.service
同样,Active: active (running)表示服务已成功启动。
Grafana默认使用的端口为3000,使用netstat命令验证端口监听状态:
[root@manager opt]# netstat -nltp | grep 3000
4)设置开机自启:
[root@manager opt]# systemctl enable grafana-server.service
5)扩展命令:
关闭服务:systemctl stop grafana-server.service
重启服务:systemctl restart grafana-server.service
禁用开机自启:systemctl disable grafana-server.service