前言
在初體驗 Vertica 單機版之后,自然要體驗一下集群版的,畢竟這才是使用最廣泛的安裝方式!
更多關(guān)于 Vertica 可以參考下方文章:
- 《初識 Vertica ,看完白皮書,我都發(fā)現(xiàn)了啥》
- 《Vertica 架構(gòu):Eon 與企業(yè)模式》
- 《初體驗:Centos7.9 單節(jié)點安裝 Vertica 11 社區(qū)版(超詳細教程)》
- 《Vertica 玩轉(zhuǎn)示例數(shù)據(jù)庫:VMart》
- 《Vertica 安裝配置 MC(管理控制臺)》
?? 作者寫的 《Vertica 技術(shù)文章合集》,歡迎閱讀 ????!
一、介紹
關(guān)于 Vertica 的安裝過程和注意點,在上一篇單機版中已經(jīng)詳細介紹過了,重復(fù)的部分我就不再過多贅述。
由于社區(qū)版最多只支持 3 節(jié)點集群和 1TB 數(shù)據(jù)量,因此只能演示 3 節(jié)點集群安裝啦!
廢話不多說,直接開裝!
二、Linux 安裝與環(huán)境配置
1、環(huán)境信息
大家手動創(chuàng)建 3 臺一模一樣的 Centos7.9 主機即可,注意主機名和網(wǎng)絡(luò)配置區(qū)分。
| 節(jié)點 | 主機版本 | Vertica 版本 | 主機名 | IP 地址 | 內(nèi)存 | SWAP | 磁盤容量 |
|---|---|---|---|---|---|---|---|
| 1節(jié)點 | centos7.9 | 11.0.1 | vertica1 | 192.168.56.150 | 4G | 2G | 50G |
| 2節(jié)點 | centos7.9 | 11.0.1 | vertica2 | 192.168.56.151 | 4G | 2G | 50G |
| 3節(jié)點 | centos7.9 | 11.0.1 | vertica3 | 192.168.56.152 | 4G | 2G | 50G |
?? 注意: Vertica 集群部分主次節(jié)點,每一個都可以作為主節(jié)點!
2、腳本介紹
?? 我作為一個懶人,就直接使用 vagrant 一鍵安裝 3 臺主機了 罒ω罒,需要源碼的可以這里直接下載:
?? 后面我會出 Vertica 單節(jié)點和3節(jié)點集群的 Vagrant 一鍵安裝腳本,到時候再公布完整腳本源碼!
展示一下源碼目錄結(jié)構(gòu)和 config/vagrant.yml:
tree -N
cat config/vagrant.yml


再分享一下環(huán)境一鍵配置腳本 env.sh:
#!/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.創(chuàng)建用戶和組
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,通過以下命令設(shè)置
echo always > /sys/kernel/mm/transparent_hugepage/enabled
## 設(shè)置開機自啟動設(shè)置 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 需要設(shè)置可執(zhí)行權(quán)限
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.配置環(huán)境變量
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.關(guān)閉 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 臺主機和環(huán)境的配置,環(huán)境配置的腳本都寫在 env.sh 中了,這里篇幅過長不過多展示!
3、環(huán)境安裝配置
開始安裝:
vagrant up

短暫等待幾分鐘之后,3 臺主機就創(chuàng)建好了,并且環(huán)境配置都已經(jīng)配置好了!

使用下面命令連接到 3 個節(jié)點檢查一下環(huán)境配置情況:
vagrant ssh node1 vagrant ssh node2 vagrant ssh node3
3 臺主機的 root 用戶密碼均為 vertica,dbadmin用戶的密碼為 dbadmin。
環(huán)境檢查腳本:
## 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
檢查每一項都沒問題之后就可以繼續(xù)下一步了!
4、配置互信
分享一個一鍵配置互信的腳本:《Linux 多臺主機配置 ssh 互信腳本》
上傳互信腳本后,執(zhí)行互信:
## 前提是先安裝 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
## 執(zhí)行互信
sh sshtrust.sh root vertica /soft/sshhostList.cfg
## 測試互信


互信配置完畢!
三、安裝 Vertica 集群
?? 正式開始安裝前,強烈建議重啟三臺主機!??
1、rpm 安裝
安裝介質(zhì)已經(jīng)上傳到節(jié)點一的 /soft 目錄下,在節(jié)點一執(zhí)行 rpm 安裝:
cd /soft
rpm -ivh vertica-11.0.1-2.x86_64.RHEL6.rpm

?? 注意: 這里 rpm 只需要在節(jié)點一執(zhí)行即可,執(zhí)行腳本安裝時會拷貝到其他節(jié)點!
2、腳本靜默安裝
使用 /opt/vertica/sbin/install_vertica 腳本來靜默安裝!
1、創(chuàng)建靜默安裝配置文件
/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、查看配置文件
cat /tmp/vertica-inst.prp

確認信息沒有錯誤后,開始安裝!
3、開始靜默安裝
/opt/vertica/sbin/install_vertica --config-file /tmp/vertica-inst.prp
如圖,先給其他節(jié)點安裝 rpm 包:

繼續(xù)等待幾分鐘時間,安裝完成:

軟件安裝完成后,下面就可以開始創(chuàng)建數(shù)據(jù)庫!
3、MC 創(chuàng)建集群
當(dāng)然也可以使用 MC 創(chuàng)建集群,參考如下步驟!
1、填寫關(guān)鍵信息 集群名,密碼:

2、獲取私鑰文件
需要私鑰文件才能完成 MC 集群安裝向?qū)В捎谝呀?jīng)互信過,直接獲取私鑰:
cd /root/.ssh
ls

將私鑰 id_rsa 拷貝至打開 MC 的主機上!
3、選擇私鑰,繼續(xù)創(chuàng)建

4、選擇 vertca rpm 包

四、MC 創(chuàng)建數(shù)據(jù)庫
參考文章:《Vertica 安裝配置 MC(管理控制臺)》 安裝 MC 控制臺!

1、導(dǎo)入集群
由于已經(jīng)創(chuàng)建集群,這邊可以直接導(dǎo)入集群,如果沒有沒有創(chuàng)建集群,也可以使用 MC 創(chuàng)建集群!
1、輸入節(jié)點1的 IP 地址 192.168.56.150

2、獲取節(jié)點1的 API Key
cat /opt/vertica/config/apikeys.dat

3、填寫 API Key

4、確認導(dǎo)入


5、查看集群狀態(tài)


至此,集群已經(jīng)成功導(dǎo)入!
2、創(chuàng)建數(shù)據(jù)庫
選擇創(chuàng)建數(shù)據(jù)庫:

選擇企業(yè)模式:

數(shù)據(jù)庫名 Lucifer,密碼為空:


確認信息沒問題,開始創(chuàng)建:



等待創(chuàng)建結(jié)束即可,可能會報一個 license 相關(guān)的錯誤。
點擊導(dǎo)入數(shù)據(jù)庫 Lucifer,然后查看:

總體來說,創(chuàng)建過程沒有 admintools 創(chuàng)建來的順滑,也算是一個嘗鮮吧!
寫在最后
社區(qū)版 3 節(jié)點的集群,安裝起來也不費勁,跟單機版其實差別不是很大,上手不難!至于關(guān)于如何管理集群和數(shù)據(jù)庫,咱們后續(xù)文章再講吧~




