在Greenplum官方文档中查找CentOS最新版本信息时,发现官方说明较为模糊。实际上,直接沿用对应Red Hat版本即可,两者在兼容性方面表现优异。
前言
Greenplum集群的典型部署思路如下:选取一台主机作为Master节点,其余机器作为Segment节点。若硬件资源有限,可通过虚拟机搭建三个CentOS 6.6实例,采用1+2模式(1个Master、2个Segment节点)。
安装过程中存在一种高效的简化方法:先在Master机上完成Greenplum软件部署,然后利用 gpssh-exkeys 在Master与Segment之间建立SSH互信,随后通过 gpssh 即可登录所有节点,执行创建用户、复制安装包等后续操作。当然,在安装前可能需要调整内核参数或系统资源限制,具体取决于实际环境需求。由于本例中虚拟机硬件远低于官方最低要求,故直接跳过此步骤。
安装前准备(可选)
1. 在Master机的 /etc/sysctl.conf 中添加
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 中添加
* soft nofile 65536 * hard nofile 65536 * soft nproc 131072 * hard nproc 131072
⚠️ 注意:在Red Hat 6.x和CentOS 6.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安装包。默认情况下Greenplum被安装至 /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. 创建gpadmin用户
建议先在Master机上创建用于管理Greenplum数据库的专用用户 gpadmin,后续Segment节点上的同名用户可通过 gpssh 远程批量添加。
groupadd -g 530 gpadmin useradd -g 530 -u 530 -m -d /home/gpadmin -s /bin/bash gpadmin passwd gpadmin # 设定密码 chown -R gpadmin:gpadmin /home/gpadmin chown -R gpadmin:gpadmin /opt/greenplum
随后加载Greenplum环境变量:
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与主机名。例如:
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)下创建两个文本文件:hostlists(包含所有主机名)和 seg_hosts(仅含Segment主机名)。
/var/hostlists 内容:
mdw sdw1 sdw2
/var/seg_hosts 内容:
sdw1 sdw2
开始建立SSH互信:
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。如果 ssh-add 报错“Could not open a connection to your authentication agent”,先运行 ssh-agent bash 再重试。
互信建立成功后,即可使用 gpssh -f /var/seg_hosts 访问所有Segment机器,进行后续操作。
