前言

在初体验 Vertica 单机版之后,自然要体验一下集群版的,毕竟这才是使用最广泛的安装方式!

更多关于 Vertica 可以参考下方文章:

🏆 作者写的 《Vertica 技术文章合集》,欢迎阅读 👏🏻!

一、介绍

关于 Vertica 的安装过程和注意点,在上一篇单机版中已经详细介绍过了,重复的部分我就不再过多赘述。

由于社区版最多只支持 3 节点集群和 1TB 数据量,因此只能演示 3 节点集群安装啦!

废话不多说,直接开装!

二、Linux 安装与环境配置

1、环境信息

大家手动创建 3 台一模一样的 Centos7.9 主机即可,注意主机名和网络配置区分。

节点 主机版本 Vertica 版本 主机名 IP 地址 内存 SWAP 磁盘容量
1节点 centos7.9 11.0.1 vertica1 192.168.56.150 4G 2G 50G
2节点 centos7.9 11.0.1 vertica2 192.168.56.151 4G 2G 50G
3节点 centos7.9 11.0.1 vertica3 192.168.56.152 4G 2G 50G

📢 注意: Vertica 集群部分主次节点,每一个都可以作为主节点!

2、脚本介绍

👻 我作为一个懒人,就直接使用 vagrant 一键安装 3 台主机了 罒ω罒,需要源码的可以这里直接下载

🏅 后面我会出 Vertica 单节点和3节点集群的 Vagrant 一键安装脚本,到时候再公布完整脚本源码!

展示一下源码目录结构和 config/vagrant.yml

1
2
tree -N
cat config/vagrant.yml

再分享一下环境一键配置脚本 env.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#!/bin/bash

##Configure Linux environment For openGauss
echo vertica | passwd --stdin root
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
## 1.Disable firewalld service
systemctl mask firewalld.service
systemctl disable firewalld.service
systemctl stop firewalld.service
echo "Firewalld " `systemctl status firewalld|grep Active`
echo "1.Disable firewalld service completed."
echo -e "\n"

## 2.Disable SELINUX
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
getenforce
cat /etc/selinux/config|grep "SELINUX=disabled"
echo "2.Disable SELINUX completed."
echo -e "\n"

## 3.检查 pts 是否挂载
df -Th /dev/pts
echo "3.Check pts completed."
echo -e "\n"

## 4.创建用户和组
groupadd -g 1001 verticadba
useradd -u 1001 -g verticadba dbadmin
echo "dbadmin" | passwd dbadmin --stdin
id dbadmin
echo "4.Create group and user completed."
echo -e "\n"

## 5.配置 Disk Readahead
lsblk
/sbin/blockdev --setra 8192 /dev/sda
echo '/sbin/blockdev --setra 8192 /dev/sda' >> /etc/rc.local
chmod +x /etc/rc.d/rc.local
echo "5.Set Disk Readahead completed."
echo -e "\n"

## 6. Configure YUM and Install Packages
yum install -y gdb mcelog sysstat openssh which dialog chrony expect
rpm -q gdb mcelog sysstat openssh which dialog chrony expect
echo "6.Configure YUM and Install Packages completed."
echo -e "\n"

## 7.配置透明大页
## 默认为 always
cat /sys/kernel/mm/transparent_hugepage/enabled
## 如果不是 always,通过以下命令设置
echo always > /sys/kernel/mm/transparent_hugepage/enabled
## 设置开机自启动设置 always
cat<<EOF>>/etc/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo always > /sys/kernel/mm/transparent_hugepage/enabled
fi
EOF
## redhat7 或 centos7 需要设置可执行权限
chmod +x /etc/rc.d/rc.local
echo "7.Enable transparent_hugepage completed."
echo -e "\n"

## 8.配置 I/O Scheduler
cat /sys/block/sda/queue/scheduler
echo deadline > /sys/block/sda/queue/scheduler
## 加入开机自启
echo 'echo deadline > /sys/block/sda/queue/scheduler' >> /etc/rc.local
chmod +x /etc/rc.d/rc.local
echo "8.Set I/O Scheduler completed."
echo -e "\n"

## 9.配置 TZ(TimeZone)
yum update -y tzdata
timedatectl set-timezone Asia/Shanghai
echo "9.Set TZ completed."
echo -e "\n"

## 10.配置环境变量
cat<<EOF>>/home/dbadmin/.bash_profile
export TZ="Asia/Shanghai"
export LANG=en_US.UTF-8
EOF
echo "10.Set Profile completed."
echo -e "\n"

## 11.关闭 tuned
systemctl stop tuned.service
systemctl disable tuned.service
systemctl status tuned.service
echo "11.Disable tuned completed."
echo -e "\n"


## 12.配置 swapiness
cat /proc/sys/vm/swappiness
echo 0 > /proc/sys/vm/swappiness
echo vm.swappiness=0 >>/etc/sysctl.conf
sysctl -p
echo "12.Disable swappiness completed."
echo -e "\n"

## 13.禁用 Defrag(碎片整理)
cat /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/defrag
cat<<EOF>>/etc/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
EOF
chmod +x /etc/rc.d/rc.local
echo "13.Disable Defrag completed."
echo -e "\n"

## 14.配置 limits.conf
cat<<EOF>>/etc/security/limits.conf
dbadmin - nice 0
dbadmin - nofile 65536
dbadmin - as unlimited
dbadmin - fsize unlimited
dbadmin - nproc 30152
EOF
echo "14.Set limits completed."
echo -e "\n"

## 15.配置 pam.d
cat<<EOF>>/etc/pam.d/su
session required pam_limits.so
EOF
echo "15.Set pam.d completed."
echo -e "\n"

## 16.配置 sysctl.conf
cat<<EOF>>/etc/sysctl.conf
fs.file-max=65536
vm.min_free_kbytes=7980
kernel.pid_max=524288
vm.max_map_count=65536
EOF
sysctl -p
echo "16.Set sysctl completed."
echo -e "\n"

## 17. Configure SSH Service
sed -i '/Banner/s/^/#/' /etc/ssh/sshd_config
sed -i '/PermitRootLogin/s/^/#/' /etc/ssh/sshd_config
echo -e "\n" >> /etc/ssh/sshd_config
echo "Banner none " >> /etc/ssh/sshd_config
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
cat /etc/ssh/sshd_config |grep -v ^#|grep -E 'PermitRoot|Banner'
echo "17.Configure SSH Service completed."
echo -e "\n"

## 18.开启 chrony
systemctl status chronyd
systemctl enable chronyd
chronyc tracking
echo "18.Enable chrony completed."
echo -e "\n"

📢 注意: Vagrant 安装包含 3 台主机和环境的配置,环境配置的脚本都写在 env.sh 中了,这里篇幅过长不过多展示!

3、环境安装配置

开始安装:

1
vagrant up

短暂等待几分钟之后,3 台主机就创建好了,并且环境配置都已经配置好了!

使用下面命令连接到 3 个节点检查一下环境配置情况:

1
2
3
vagrant ssh node1
vagrant ssh node2
vagrant ssh node3

3 台主机的 root 用户密码均为 verticadbadmin用户的密码为 dbadmin

环境检查脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
## 1.主机名
hostname
## 2.防火墙检查
systemctl status firewalld
## 3.Selinux 检查
getenforce
## 4.rpm检查
rpm -q gdb mcelog sysstat openssh which dialog chrony
## 5.pts检查
df -Th /dev/pts
## 6.用户和组检查
id dbadmin
## 7.Disk Readahead检查
/sbin/blockdev --getra /dev/sda
## 8.chrony检查
systemctl status chronyd
## 9.透明大页检查
cat /sys/kernel/mm/transparent_hugepage/enabled
## 10.I/O Scheduler检查
cat /sys/block/sda/queue/scheduler
## 11.TZ和LANG检查
cat /home/dbadmin/.bash_profile
## 12.tuned检查
systemctl status tuned.service
## 13.检查swapiness
cat /proc/sys/vm/swappiness
## 14.Defrag检查
cat /sys/kernel/mm/transparent_hugepage/defrag
## 15.limits.conf检查
cat /etc/security/limits.conf
## 16.pam.d检查
cat /etc/pam.d/su
## 17.sysctl检查
sysctl -p

检查每一项都没问题之后就可以继续下一步了!

4、配置互信

分享一个一键配置互信的脚本:《Linux 多台主机配置 ssh 互信脚本》

上传互信脚本后,执行互信:

1
2
3
4
5
6
7
8
9
10
11
12
13
## 前提是先安装 expect
yum install -y expect
cd /soft
chmod +x sshtrust.sh
## 填写需要互信的IP地址
cat<<EOF>sshhostList.cfg
192.168.56.150
192.168.56.151
192.168.56.152
EOF
## 执行互信
sh sshtrust.sh root vertica /soft/sshhostList.cfg
## 测试互信

互信配置完毕!

三、安装 Vertica 集群

‼️ 正式开始安装前,强烈建议重启三台主机!💥

1、rpm 安装

安装介质已经上传到节点一的 /soft 目录下,在节点一执行 rpm 安装:

1
2
cd /soft
rpm -ivh vertica-11.0.1-2.x86_64.RHEL6.rpm

📢 注意: 这里 rpm 只需要在节点一执行即可,执行脚本安装时会拷贝到其他节点!

2、脚本静默安装

使用 /opt/vertica/sbin/install_vertica 脚本来静默安装!

1、创建静默安装配置文件

1
/opt/vertica/sbin/install_vertica --record-config /tmp/vertica-inst.prp --hosts 192.168.56.150,192.168.56.151,192.168.56.152 --accept-eula --ssh-password vertica --dba-user-password dbadmin --rpm /soft/vertica-11.0.1-2.x86_64.RHEL6.rpm

2、查看配置文件

1
cat /tmp/vertica-inst.prp

确认信息没有错误后,开始安装!

3、开始静默安装

1
/opt/vertica/sbin/install_vertica --config-file /tmp/vertica-inst.prp

如图,先给其他节点安装 rpm 包:

继续等待几分钟时间,安装完成:

软件安装完成后,下面就可以开始创建数据库!

3、MC 创建集群

当然也可以使用 MC 创建集群,参考如下步骤!
1、填写关键信息 集群名密码

2、获取私钥文件

需要私钥文件才能完成 MC 集群安装向导,由于已经互信过,直接获取私钥:

1
2
cd /root/.ssh
ls

将私钥 id_rsa 拷贝至打开 MC 的主机上!

3、选择私钥,继续创建

4、选择 vertca rpm 包

四、MC 创建数据库

参考文章:《Vertica 安装配置 MC(管理控制台)》 安装 MC 控制台!

1、导入集群

由于已经创建集群,这边可以直接导入集群,如果没有没有创建集群,也可以使用 MC 创建集群!

1、输入节点1的 IP 地址 192.168.56.150

2、获取节点1的 API Key

1
cat /opt/vertica/config/apikeys.dat

3、填写 API Key

4、确认导入

5、查看集群状态

至此,集群已经成功导入!

2、创建数据库

选择创建数据库:

选择企业模式:

数据库名 Lucifer,密码为空:

确认信息没问题,开始创建:

等待创建结束即可,可能会报一个 license 相关的错误。

点击导入数据库 Lucifer,然后查看:

总体来说,创建过程没有 admintools 创建来的顺滑,也算是一个尝鲜吧!

写在最后

社区版 3 节点的集群,安装起来也不费劲,跟单机版其实差别不是很大,上手不难!至于关于如何管理集群和数据库,咱们后续文章再讲吧~