Greenplum安装步骤

近日在公司测试环境搭建成功了Greenplum,期间遇到一些问题,特此记录下来。
本次用家里的虚拟机做演示:
主机名 ip
mdw 192.168.114.129
sdw1 192.168.114.130
sdw2 192.168.114.131
三台主机在/etc/hosts文件添加纪录。

一、三台主机内核参数设置,修改 /etc/sysctl.conf 的参数,然后执行sysctl -p生效。
xfs_mount_options = rw,noatime,inode64,allocsize=16m
kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000000000
kernel.sem = 250 512000 100 2048
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

二、三台主机在 /etc/security/limits.conf 增加如下内容:
* soft nofile 65536 
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072 
上述配置具体含义:
soft nproc: 可打开的文件描述符的最大数(软限制)
hard nproc:可打开的文件描述符的最大数(硬限制)
soft nofile:单个用户可用的最大进程数量(软限制)
hard nofile:单个用户可用的最大进程数量(硬限制)
注意:对于RedHat 6.x和Centos6.x的机子,在/etc/security/limits.d/90-nproc.conf  的参数会覆盖上述文件参数。如果这两个文件都设置参数,保证参数在90-nproc.conf设置好了。

三、root登陆Master主机安装Greenplum binaries(若是源码安装网上很多文章可以参考)
执行下述命令:
unzip Greenplum-db-4.2.2.4-build-1-CE-RHEL5-i386.zip
chmod u+x greenplum-db-4.2.2.4-build-1-CE-RHEL5-i386.bin
./greenplum-db-4.2.2.4-build-1-CE-RHEL5-i386.bin(安装过程根据提示 yes,Enter即可)

四、三台主机同一目下都创建 all_hosts 和 all_segs 两张表
all_hosts 表:
mdw
sdw1
sdw2
all_segs 表:
sdw1
sdw2
注意:建好表后,修改表的用户属性:
chown gpadmin:gpadmin all_*

五、Master主机为所有主机建立gpadmin账号:
1.获取环境参数(master节点):
source /usr/local/greenplum-db/greenplum_path.sh2
2.建立gpadmin账号并设置密码 :
gpseginstall -f /root/gpdb/all_hosts -u gpadmin -p gpadmin
(基于安全考虑后续需要修改密码,all_hosts是上个步骤创建的文件,安装过程中会让输入三台主机的密码)
3.完成后提示成功,如下图:


六、Master主机切换到gpadmin用户,验证GP安装配置正确:
cp /root/gpdb/all_* /home/gpadmin/
chown gpadmin:gpadmin /home/gpadmin/all_*
su - gpadmin
source /usr/local/greenplum-db/greenplum_path.sh
gpssh -f all_hosts -e ls -l $GPHOME
(如果成功登录到所有主机并且未提示输入密码,安装没有问题。所有主机在安装路径显示相同的内容,且目录的所有权为gpadmin用户)


七、Master 为root和gpadmin用户建立主机互信(交换密钥):
su -root修改GreenPlum安装目录的用户和属主
gpssh-exkeys -f /home/gpadmin/all_hosts
su - gpadmin
gpssh-exkeys -f /home/gpadmin/all_hosts
安装的时候可能会遇到下面的报错:(ssh 6.7以上屏蔽不安全算法)
[ERROR sdw1] Incompatible ssh peer (no acceptable kex algorithm)
解决方法:
在/etc/ssh/sshd_config最后加上:
 KexAlgorithms [email protected],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
然后协议那里修改成:Protocol 1,2

八、Master上操作创建数据存储区域:
mkdir /data
mkdir /data/master
chown gpadmin:gpadmin /data/master/
source /usr/local/greenplum-db-4.2/greenplum_path.sh
gpssh -f /home/gpadmin/all_segs -e 'mkdir /data'
gpssh -f /home/gpadmin/all_segs -e 'mkdir /data/primary'
gpssh -f /home/gpadmin/all_segs -e 'mkdir /data/mirror'
gpssh -f /home/gpadmin/all_segs -e 'chown gpadmin /data/primary'
gpssh -f /home/gpadmin/all_segs -e 'chown gpadmin /data/mirror'

九、同步系统时钟:
1.Matser主机的/etc/ntp.conf文件server可以保持不变。
2.Segments主机的/etc/ntp.conf文件server改成 server mdw prefer(Master的hostname)
3.在Master主机上,通过NTP守护进程同步系统时钟:
 gpssh -f all_hosts -v -e 'ntpd'
4.验证下观察时间是否一致:
gpssh -f /home/gpadmin/all_hosts -v date 
注意:时区是否相同,mdw的防火墙是否有限制。显示no server suitable for synchronization found,可以ping下hostanme等等试试。

十、Master上进行主机OS参数检测:
gpssh -f /home/gpadmin/all_hosts -v date 
在gpcheck完成检查所有主机的OS参数之后,可能会给出对OS参数的修改意见。

gpcheck时遇到的一些报错解决:
gpssh -f /home/gpadmin/all_hosts -e 'echo deadline > /sys/block/sr0/queue/scheduler'
gpssh -f /home/gpadmin/all_hosts -e 'echo deadline > /sys/block/sr1/queue/scheduler'
gpssh -f /home/gpadmin/all_hosts -e 'echo deadline > /sys/block/sda/queue/scheduler'
/sbin/blockdev --setra 16384 /dev/sda* /sbin/blockdev --getra /dev/sda*

十一、Master上进行网络性能和磁盘I/O和内存宽带的验证:
1.网络:
gpcheckperf -f hostfile_exkeys -r N -d /tmp > subnet1.out
查看结果:vim subnet1.out

2.磁盘I/O和内存带宽:
gpcheckperf -f /home/gpadmin/all_hosts -d /data/mirror -r ds

十二、Master上进行Greenplum的初始化:
1.以gpadmin用户登录:
su - gpadmin(source /usr/local/greenplum-db/greenplum_path.sh)
2.拷贝一个gpinitsystem_config示例文件作为入口:
cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config /home/gpadmin/gpinitsystem_config
chown gpadmin:gpadmin /home/gpadmin/gpinitsystem_config
3.打开刚拷贝的文件并编辑:vim gpinitsystem_config
在sgrments上只配置一个primary实例:declare -a DATA_DIRECTORY=(/data/primary)
文件末行修改: MACHINE_LIST_FILE=/home/gpadmin/all_segs
4.作为可选项,可以配置Mirror Segment Instance,取消文件中的注释并根据环境情况配置参数
MIRROR_PORT_BASE=50000
REPLICATION_PORT_BASE=41000
MIRROR_REPLICATION_PORT_BASE=51000
declare -a MIRROR_DATA_DIRECTORY=(/data/mirror)
5.运行初始化命令:
gpinitsystem -c gpinitsystem_config all_segs

有个报错:-Master host data directory /data/master/gpseg-1 already exists Script Exiting!
解决方法:
rm -rf /data/master/gpseg-1

十三、三台主机设置GP环境变量:
1. 以gpadmin用户登录:
su - gpadmin
2. 打开用户启动文件(如.bashrc):
vi ~/.bashrc
3. 添加新行用以加载greenplum_path.sh文件和设置MASTER_DATA_DIRECTORY环境变量:
source /usr/local/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/master/gpseg-1
4. 作为可选项,还可以设置一些客户端会话的环境变量,如PGPORT、PGUSER和PGDATABASE以便于使用客户端命令。例如:
export PGPORT=5432
export PGUSER=gpadmin
export PGDATABASE=default_login_database_name
5. 在编辑完用户启动文件后,加载该文件使得修改生效:source ~/.bashrc

十四、连接到postgres数据库:
psql -d postgres


















猜你喜欢

转载自blog.csdn.net/u013181216/article/details/72605362