1.由于最小化安装,所有机器执行
yum install ed openssh-clients zip unzip perl bind-utils net-tools -y
2.所有服务器关闭防火墙
#contos7:
systemctl stop firewalld
systemctl disable firewalld
firewall-cmd --state
#contos7以下:
service iptables stop
service iptables status
chkconfig iptables off(永久性生效,重启后不会复原)
#service iptables stop(即时生效,重启后复原)
3.检查时间是否为北京时间,如已经操作第一步时间同步后,此步可省略
#检查ntp主机时间是否为当前北京时间
date
#如不是:
date -s "2020-05-15 16:11:00"
#修改系统时间date后加clock -w 理由-->为了保险,需要使用 clock -w 把当前系统时间写入到CMOS中
clock -w
4.所有机器执行挂载
#正常情况下:
#查看磁盘
fdisk -l
#查看已挂载磁盘对应目录
df -h
#进入根目录
cd /
#创建目录
mkdir data
#格式化磁盘(如果是挂在两个盘,则需要格式两个磁盘:/dev/sdb /dev/sdc)
mkfs.xfs -f /dev/sdb
#mkfs.xfs -f /dev/sdc
#将信息写入fstab,让系统开启自动挂载
echo "
/dev/sdb /data xfs rw,noatime,inode64,allocsize=16m 1 1
" >>/etc/fstab
#挂载磁盘
mount -a
#检查是否挂载成功
df -h
步骤4遇到的问题:
#当需要的挂载磁盘已经挂载了对应的目录
umount /dev/sdb /data
#当遇到提示:设备正忙,卸载即告失败(/data: device is busy)
可使用:lsof /data
#使用fuser查看目录被谁占用,然后kill掉线程(lsof /data其实也可)
或者使用:fuser /data
/data: 2454 rc
#kill掉正在使用的进程后,重新 umount /dev/sdb /data
kill -9 2454
umount /dev/sdb /data
#遇到:mount:can‘t find uuid = xxxx
这说明uuid 对应的磁盘之前是有挂载过,然后我们格式化后UUID已经变了,然后之前对应的也是/data 目录,解决办法:
输入 blkid,然后拿到/dev/sdb 新的UUID,然后把/etc/fstab 文件对应的/dev/sdb 换成UUID,把之前有关/data的全部注销掉,再重新挂载:
5.修改所有机器名称
#centos7:
hostnamectl set-hostname mdw132
hostnamectl --static
.....
hostnamectl set-hostname sdw137
hostnamectl set-hostname sdw138
hostnamectl set-hostname sdw139
#centos7以下:
#永久生效
vi /etc/sysconfig/network
HOSTNAME=mdw132
6.修改所有机器hosts
vi /etc/hosts
10.214.138.132 mdw132
10.214.138.133 sdw133
10.214.138.134 sdw134
10.214.138.135 sdw135
10.214.138.136 sdw136
10.214.138.137 sdw137
10.214.138.138 sdw138
10.214.138.139 sdw139
7.多机信任(免登陆),所有机器都需要执行
区分:这里master节点和其他datanode节点会略有区别。
1.首先所有节点均执行如下命令,遇到提示一路回车即可:
ssh-keygen -t rsa
2.在主节点执行以下命令:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3.scp文件到所有datenode节点:
scp ~/.ssh/authorized_keys root@10.214.138.133:~/.ssh/
scp ~/.ssh/authorized_keys root@10.214.138.134:~/.ssh/
scp ~/.ssh/authorized_keys root@10.214.138.135:~/.ssh/
scp ~/.ssh/authorized_keys root@10.214.138.136:~/.ssh/
scp ~/.ssh/authorized_keys root@10.214.138.137:~/.ssh/
scp ~/.ssh/authorized_keys root@10.214.138.138:~/.ssh/
scp ~/.ssh/authorized_keys root@10.214.138.139:~/.ssh/
8.GP数据库安装部署:
8.1:修改所有机器的hosts(如果步骤6已做检查一遍)
cat /etc/hosts
8.2:安装greenplum--主节点执行(mdw132上执行)
安装软件上传至mdw132目录:/home/gp_install
#创建/home/gp_install
mkdir /home/gp_install
#进入
cd /home/gp_install
#赋值目录
chmod 777 /home/gp_install
#winscp 上传greenplum-db-4.3.11.3-rhel5-x86_64.bin到 /home/gp_install
#以下步骤root用户在mdw执行,安装本地GP,并交换密钥:
#(在文件所在目录下执行)
./greenplum-db-4.3.11.3-rhel5-x86_64.bin
# 注意修改默认安装目录为:/usr/local/greenplum-db,其它都默认为yes。
#读取变量
source /usr/local/greenplum-db/greenplum_path.sh
8.3:配置全部服务器列表(mdw132上执行)
注意:后续vi新建脚本都默认在mdw132服务器的/home/gp_install目录下,同时执行命令也需在mdw132服务器的该目录下运行
cd /home/gp_install
vi hostfile_all
#添加:
sdw133
sdw134
sdw135
sdw136
sdw137
sdw138
sdw139
8.4:交换密钥
#将hostfile_all文件赋值给
chown gpadmin:gpadmin /hostfile_all
#删除原来的文件
cd /root/.ssh/
rm -rf *
#执行
cd /home/gp_install/
gpssh-exkeys -f hostfile_all
[INFO] completed successfully-->成功
如果遇到一直输密码啥的:
1.有可能我们之前的多机信任有问题。
2.ssh版本密钥不对,需要修改sshd_config(所有机器执行):
vi /etc/ssh/sshd_config
#添加
KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
service sshd restart
最好改完以后,再重新生成一次秘钥,即从新多一个多机信任,先把cd /root/.ssh/ 下的文件都 rm -rf 了
8.5:服务器系统参数配置(mdw132上执行)
#配置1
#修改
vi /etc/sysctl.conf
注释原来所有内容,添加:
#system
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
#gp,64G内存—shmmax :68719476736,128G内存-- shmmax :137438953472,物理内存*0.9*1024*1024*1024
#xfs_mount_options = rw,noatime,inode64,allocsize=16m
kernel.shmmax = 57438953472
kernel.shmmni = 4096
kernel.shmall = 40000000000
kernel.sem = 120 5120000 100 20480
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
net.ipv4.tcp_syncookies = 1
net.ipv4.ip_forward = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.all.arp_filter = 1
net.ipv4.ip_local_port_range = 1025 65535
net.core.netdev_max_backlog = 10000
vm.overcommit_memory = 2
#net.core.rmem_max = 2097152
#net.core.wmem_max = 2097152
net.core.rmem_default = 256960
net.core.rmem_max = 2097152
net.core.wmem_default = 256960
net.core.wmem_max = 2097152
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_sack = 0
net.ipv4.tcp_window_scaling = 1
注意:
#gp-->kernel.shmmax的值:64G内存—shmmax :68719476736,128G内存-- shmmax :137438953472,即物理内存*0.9*1024*1024*1024,如我的机器全是256G的:256*1024*1024*1024*0.9 , 其实只要超过128G 都可以默认得了...
#配置2
#修改
vi /etc/security/limits.conf
在最后增加:
#增加:
#gp
gpadmin soft nofile 65536
gpadmin hard nofile 65536
gpadmin soft nproc 131072
gpadmin hard nproc 131072
注意:
对于RedHat6.x/CENTOS 6.X系统,还需要将vi /etc/security/limits.d/90-nproc.conf文件中的1024修改为131072。
对于RedHat7.x/CENTOS 7.X系统,还需要将vi 录vi /etc/security/limits.d/20-nproc.conf文件中的4096修改为131072。
#配置3
#修改
vi /etc/rc.d/rc.local
在最后增加:
#添加:
#gp
/sbin/blockdev --setra 16384 /dev/sd*
保存修改后执行命令:
#单独执行命令:
echo 1 > /proc/sys/vm/overcommit_memory
#配置4(Centos6.5没有该文件,略过)
vi /boot/grub/menu.lst
#添加后的结果:
kernel /boot/vmlinuz-2.2.18-164.el5 ro root=LABEL=/ ro elevator=deadline rhgb quiet
(注:根据系统不同内容会不同,只管添加elevator=deadline即可)。
#配置5
vi /etc/inittab
#在最后增加:
id:3:initdefault:
#配置6
vi /etc/ssh/sshd_config
[找到MaxStartups去掉#并修改为如下参数]
MaxStartups=1000:30:5000
#配置 7
vi /etc/sysconfig/selinux
#找到SELINUX修改:
SELINUX=disabled
8.6.将mdw132(主服务器)配置覆盖其它节点服务器脚本:
#新建cp.sh文件
vi cp.sh
#添加:
gpscp -f hostfile_all /etc/hosts =:/etc
gpscp -f hostfile_all /etc/sysctl.conf =:/etc
gpscp -f hostfile_all /etc/security/limits.conf =:/etc/security
gpscp -f hostfile_all /etc/rc.d/rc.local =:/etc/rc.d
gpscp -f hostfile_all /proc/sys/vm/overcommit_memory =:/proc/sys/vm
gpscp -f hostfile_all /etc/sysconfig/selinux =:/etc/sysconfig
gpscp -f hostfile_all /etc/inittab =:/etc
gpscp -f hostfile_all /etc/ssh/sshd_config =:/etc/ssh/sshd_config
gpscp -f hostfile_all /etc/yum.repos.d/http.repo =:/etc/yum.repos.d/
#执行:
chmod +x cp.sh
./cp.sh
8.7.检查配置结果
#新建check文件
vi check
#添加:
/sbin/sysctl -p
/sbin/blockdev --setra 16384 /dev/sd*
blockdev --getra /dev/sd*
df -h
/etc/init.d/iptables stop
/etc/init.d/iptables status
chkconfig iptables off
chkconfig --list iptables
setenforce 0
getenforce
cat /etc/sysconfig/network
cat /etc/hosts
grep MaxStartups /etc/ssh/sshd_config
grep MaxSessions /etc/ssh/sshd_config
#执行
gpssh -f hostfile_all -v < check
8.8.安装GP数据库(mdw132上执行)
#1.创建数据存储区,以下步骤root用户在mdw132执行,在所有节点上安装GP:
gpseginstall -f hostfile_all -u gpadmin -p gpadmin
#2.master存储创建:
mkdir -p /data/master
mkdir -p /data/master/space_fastdisk
chown gpadmin /data/master
chown -R gpadmin:gpadmin /data
chown -R gpadmin:gpadmin /data/master
#3.second master存储(本次没备用管理smdw服务器,请忽略此步骤)
//gpssh -h smdw -e 'mkdir -p /home/data/master'
//gpssh -h smdw -e 'chown gpadmin /home/data/master'
#4.segment存储
#创建mkdir文件
vi mkdir
#添加:
注意:正常情况都是data1到data4,因为此次服务器内存小,磁盘也不大,还是虚拟机,读写性能估计也一般,所以只做data1和data2,而机器,把盘做了raid,做n组raid就有n个盘挂载,我们就可以每个挂载盘创建一个data
mkdir -p /data/data1/gp/p
mkdir -p /data/data1/gp/m
mkdir -p /data/data2/gp/p
mkdir -p /data/data2/gp/m
mkdir -p /data/data1/gp/p/space_fastdisk
mkdir -p /data/data1/gp/m/space_fastdisk
mkdir -p /data/data2/gp/p/space_fastdisk
mkdir -p /data/data2/gp/m/space_fastdisk
chown -R gpadmin:gpadmin /data/data1
chown -R gpadmin:gpadmin /data/data2
chown -R gpadmin:gpadmin /data/data1/gp
chown -R gpadmin:gpadmin /data/data2/gp
#执行
gpssh -f hostfile_all -v < mkdir
8.9.配置环境变量
#以下步骤gpadmin用户在mdw132执行.
切换用户:su - gpadmin
#配置gpadmin变量
#修改:
vi /home/gpadmin/.bashrc
#添加:
export GPHOME=/usr/local/greenplum-db
source $GPHOME/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/master/gpseg-1
export PGPORT=5432
export PGUSER=gpadmin
export PGDATABASE=postgres
#读取变量
source /home/gpadmin/.bashrc
8.10.初始化GP数据库(mdw132上执行)
#以下操作gpadmin用户在mdw132上执行:
#创建目录
su - gpadmin
mkdir /home/gpadmin/gpconfigs
cd /home/gpadmin/gpconfigs
#配置实例对应的网卡
#创建文件:
vi hostfile_gpinitsystem
#添加节点服务器:
mdw132
sdw133
sdw134
sdw135
sdw136
sdw137
sdw138
sdw139
注意:一定要加上主服务器,不然到时候数据存不到主服务器
#配置实例对应的磁盘等
1.实例数不用太多,参考2物理cpu则8个实例即可;
2.DATA_DIRECTORY 一个目录代表一个实例,本次GP部署每台使用2块盘
vi gpinitsystem_config
#添加:
ARRAY_NAME="EMC Greenplum DW"
SEG_PREFIX=gpseg
PORT_BASE=40000
declare -a DATA_DIRECTORY=(/data/data1/gp/p /data/data2/gp/p)
MASTER_HOSTNAME=mdw11
MASTER_DIRECTORY=/data/master
MASTER_PORT=5432
TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=16
ENCODING=UTF8
MIRROR_PORT_BASE=50000
REPLICATION_PORT_BASE=41000
MIRROR_REPLICATION_PORT_BASE=51000
declare -a MIRROR_DATA_DIRECTORY=(/data/data1/gp/m /data/data2/gp/m)
DATABASE_NAME=lte_mr
#执行初始化
[无备管理服务器smdw执行]
gpinitsystem -c gpinitsystem_config -h hostfile_gpinitsystem
[有备管理smdw服务器]
//gpinitsystem -c gpinitsystem_config -h hostfile_gpinitsystem -s smdw
运行结果中如出现如下信息则创建成功!
……
Greenplum Database instance successfully created
……
8.11.远程访问设置(mdw132上执行)
#以下操作gpadmin用户在mdw132上执行
cd $MASTER_DATA_DIRECTORY
vi pg_hba.conf
#添加:
host all gpadmin 0.0.0.0/0 md5
host all dpi 0.0.0.0/0 md5
8.12.配置GP数据库登录密码(mdw132上执行)
#以下步骤gpadmin用户在mdw193执行。
切换用户:su - gpadmin
登录数据库:psql -d lte_mr
>alter role gpadmin with password 'gpadmin_GP$';
输入:\q退出数据库
8.13.GP数据库参数配置(mdw132上执行)
[gp_vmem_protect_limit=内存总量/实例数1024=(2564)/8*1024 MB,
以128G内存,8实例为例,基本使用默认不修改]
#以下操作gpadmin用户在mdw上执行:
gpconfig -c gp_vmem_protect_limit -v 60000MB
gpconfig -c max_statement_mem -v 21333MB
gpconfig -c statement_mem -v 2048MB
gpconfig -c filerep_socket_timeout -v 350
gpconfig -c gp_fts_probe_timeout -v 60
gpconfig -c max_connections -v 1000 -m 200
gpconfig -c max_appendonly_tables -v 50000 -m 50000
gpconfig -c gp_fts_probe_threadcount -v 90 -m 90
gpconfig -c gp_fts_probe_interval -v 120 -m 120
gpconfig -c gp_fts_probe_retries -v 10 -m 10
gpconfig -c gp_fts_probe_timeout -v 120 -m 120
gpconfig -c gp_segment_connect_timeout -v 600
gpconfig -c vacuum_freeze_min_age -v 999999999 -m 999999999
gpconfig -c autovacuum_freeze_max_age -v 2000000000 -m 2000000000
8.14.重启GP数据库(mdw132上执行)
#以下步骤gpadmin用户在mdw执行,切换用户:su - gpadmin
停数据库:gpstop -M fast
启数据库:gpstart -a
查看各节点状态:gpstate –m
8.15.性能验证(数据库安装成功后测试,mdw132上执行)
#网卡性能验证,网卡-管理口
vi hostfile_gpchecknet_eth0
#添加:
mdw132
sdw133
sdw134
sdw135
sdw136
sdw137
sdw138
sdw139
#测试:
gpcheckperf -f hostfile_gpchecknet_eth0 -r N -d /tmp > eth0.out
#查看:
cat eth0.out
#磁盘性能验证
[-S 256GB] 为内存的2倍
#测试
gpcheckperf -f hostfile_gpchecknet_eth0 -r ds -D -v -S 512GB -d /data1/gp/p >disk.out
#查看:
cat disk.out