(编辑:jimmy 日期: 2024/11/16 浏览:2)
在GP官网,看不到关于最新GP在Centos上的对应版本,就使用RedHat的版本就好了。
前言:
GP的安装大致是这样的,选择一台主机作为Master机,其他作为Segment机。由于没那么多机子,就虚拟机开了三个centos6.6,采用1+2模式。
安装时候,记住 GP可以先在Master机上装好,后续通过在Maser机和Segment机间建立互信(gpssh-exkeys)来进行类似远程安装,通过 gpssh 就可以登录到所有机子上,进行你想要的包括建用户,拷贝安装好的GP,等等一系列操作。 当然,在安装前,有的人会配置下 内核参数、限制参数等等,看你需要。因为我虚拟机,硬件基本达不到官网要求,就舍去这步了。
安装前准备(可选)
1、在Master机的 /etc/sysctl.conf 中添加
[html] view plaincopy
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 net.core.rmem_max = 2097152 net.core.wmem_max = 2097152 vm.overcommit_memory = 2
重启下机子或者 sysctl -p 生效
2、在Master机 /etc/security/limits.conf 添加
[html] view plaincopy
* soft nofile 65536 * hard nofile 65536 * soft nproc 131072 * hard nproc 131072
!!! 注意,对于RedHat 6.x和Centos6.x的机子,在/etc/security/limits.d/90-nproc.conf 的参数会覆盖上述文件参数。如果这两个文件都设置参数,保证参数在90-nproc.conf设置好了。
3、关闭防火墙
chkconfig iptables off ;//永久关闭,重启后不启动
service iptables stop ;//重启后会启动 ,用service iptables status检查状态。
开始GP安装
1、在Master上安装GP,root权限
将下载好的 greenplum-db-4.3.5.2-build-1-RHEL5-x86_64.zip 放到一个目录下,解压(unzip),得到一个ReadMe和.bin文件,默认GP是装到 /usr/local/greenplum下的,其实装哪里都可以,这边我们装到 /opt/greenplum/ 下。
执行 bin文件,解压目录下 ./ greenplum-db-4.3.5.2-build-1-RHEL5-x86_64.bin
一路空格键下去,直到叫你输 yes|no ,打yes
选安装目录,将你要安装的目录输入,这里 /opt/greenplum/greenplum-db-4.3.5.2
再一路yes下去就安装好了,很快。
2、习惯先在Master机上建个 负责GP数据库的用户 gpadmin,后续segment机的用户 gpadmin 再通过 gpssh添加
一般一开始是没gpadmin用户的,直接新建
groupadd -g 530 gpadmin
useradd -g 530 -u 530 -m -d /home/gpadmin -s /bin/bash gpadmin
passwd gpadmin ;添加密码
对GP安装文件夹修改权限
chown -R gpadmin:gpadmin /home/gpadmin
chown -R gpadmin:gpadmin /opt/greenplum
将GP安装目录下的一个环境变量文件添加到用户中。
source /opt/greenplum/greenplum-db/greenplum_path.sh ;/opt/greenplum/greenplum-db是/opt/greenplum/greenplum-db-4.3.5.2的链接,没有就自己链接一个 ln -s /opt/greenplum/greenplum-db-4.3.5.2 /opt/greenplum/greenplum-db
3、建立主机间的互信
首先,在Master机上,编辑 /etc/hosts文件,
将Master机和segment机的Ip ,hostname输入。
如
# /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.127.136 mdw #master机
192.168.127.137 sdw1 #segment机
192.168.127.138 sdw2 #segment机
其次,在某个目录下 如 /var 下建一个保护所有主机hostname的文件hostlists(名字随便取)和含segment机hostname的seg_hosts。
/var/hostlists:
mdw
sdw1
sdw2
/var/seg_hosts
sdw1
sdw2
开始建立互信
gpssh-exkeys -f /var/hostlists
[root@localhost ~]$ gpssh-exkeys -f /var/hostlists
[STEP 1 of 5] create local ID and authorize on local host
... /home/root/.ssh/id_rsa file exists ... key generation skipped
[STEP 2 of 5] keyscan all hosts and update known_hosts file
[STEP 3 of 5] authorize current user on remote hosts
... send to mdw
... send to sdw1
***
*** Enter password for sdw1:
[STEP 4 of 5] determine common authentication file content
[STEP 5 of 5] copy authentication files to all remote hosts
... finished key exchange with mdw
... finished key exchange with sdw1
[INFO] completed successfully
注意:如果提示 没有秘钥就 ssh-keygen -t rsa ; ssh-add /root/.ssh/id_rsa 。 就可以得到秘钥。 如果执行 ssd-add 出现,Could not open a connection to your authentication agent ,则执行 ssh-agent bash. 即可。
建立互信后,就可以通过 gpssh -f /var/seg_hosts 访问所有的机子了。