greenplum5.17安装手册
前置:
软件安装包下载:
可以从官方下载(需要账号)
https://network.pivotal.io/products/vmware-greenplum#/releases/301769/file_groups/1397
也可以从csdn 地址下载:
greenplum-db-5.17.0-rhel7-x86-64.rpm资源-CSDN文库
1.修改主机名IP映射关系,编辑/etc/hosts文件
192.168.209.21 risen
2.修改主机名,编辑/etc/hostname文件
1 | risen |
3. 环境
- 防火墙:
可以选择直接关闭防火墙,或者添加防火墙条件允许
- SELinux:
SELinux策略是白名单原则,需要非常清楚安装软件使用的权限才能配置好(配置麻烦不说,头疼的是你不知道需要什么权限),而Linux已经有了比较完善的Security Best Practice。在Linux上部署工具有更多的实践经验和可行方案去保证系统的安全,即便是没有SELinux,是故大家普遍选择关闭SELinux。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | # 查看防火墙是否关闭,未关闭使用(systemctl stop firewalld) systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) # 查看selinux状态,未关闭修改(SELINUX=disabled) cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted |
4.添加组及用户
1 2 3 4 5 6 7 | groupadd gpadmin useradd -r -m -g gpadmin gpadmin # 给 gpadmin 用户设置密码 echo "123456" | passwd --stdin gpadmin # 删除组 groupdel gpadmin 删除用户 userdel gpadmin echo "RemoveIPC=no" >> /etc/systemd/logind.conf service systemd-logind restart |
5.下载好了之后,上传到 /home/greenplum 文件,如果没有文件则mkdir 命令创建
6.安装
1 2 3 4 | [root@192 greenplum] # rpm -Uvh greenplum-db-5.17.0-rhel7-x86_64.rpm 准备中... ################################# [100%] 正在升级/安装... 1:greenplum-db-5.17.0-1 ################################# [100%]m默认 |
默认安装的位置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | [root@192 greenplum] # ll -al /usr/local/ 总用量 0 drwxr-xr-x. 13 root root 178 2月 26 10:59 . drwxr-xr-x. 13 root root 155 2月 23 15:08 .. drwxr-xr-x. 2 root root 6 4月 11 2018 bin drwxr-xr-x. 2 root root 6 4月 11 2018 etc drwxr-xr-x. 2 root root 6 4月 11 2018 games lrwxrwxrwx. 1 root root 30 2月 26 10:59 greenplum-db -> /usr/local/greenplum-db-5.17.0 drwxr-xr-x. 11 root root 138 2月 26 10:59 greenplum-db-5.17.0 drwxr-xr-x. 2 root root 6 4月 11 2018 include drwxr-xr-x. 2 root root 6 4月 11 2018 lib drwxr-xr-x. 2 root root 6 4月 11 2018 lib64 drwxr-xr-x. 2 root root 6 4月 11 2018 libexec drwxr-xr-x. 2 root root 6 4月 11 2018 sbin drwxr-xr-x. 5 root root 49 2月 23 15:08 share drwxr-xr-x. 2 root root 6 4月 11 2018 src |
7. 赋权
1 2 | chown -R gpadmin /usr/local/greenplum* chgrp -R gpadmin /usr/local/greenplum* # 使环境变量生效 source /usr/local/greenplum-db/greenplum_path.sh |
8.初始化准备
1 2 3 4 5 6 7 8 9 10 11 12 | # 创建实例目录(主节点及segment实例存储文件夹gpnode个数视服务器情况而定) mkdir -p /home/greenplum/gpdata/master mkdir -p /home/greenplum/gpdata/gpnode1 mkdir -p /home/greenplum/gpdata/gpnode2 mkdir -p /home/greenplum/gpdata/gpnode3 mkdir -p /home/greenplum/gpdata/gpnode4 # 修改目录属主 chown -R gpadmin:gpadmin /home/greenplum/ chown -R gpadmin:gpadmin /home/greenplum/gpdata chown -R gpadmin:gpadmin /home/greenplum/gpdata/master chown -R gpadmin:gpadmin /home/greenplum/gpdata/gpnode* |
9.以下使用gpadmin用户操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | su gpadmin # ----环境变量配置 # postgresql默认端口号5432 这里使用2345 cat <<EOF >> /home/greenplum/.bashrc source /usr/local/greenplum-db/greenplum_path.sh export PGPORT=2345 export PGUSER=gpadmin export MASTER_DATA_DIRECTORY=/home/greenplum/gpdata/master/gpseg-1 export PGDATABASE=gpdb # export LD_PRELOAD=/lib64/libz.so.1 ps EOF source /home/greenplum/.bashrc # ----节点host配置(单机版值配置一个master节点) cat <<EOF >> /home/greenplum/hostfile_exkeys risen EOF # ----ssh权限互通设置 gpssh-exkeys -f /home/greenplum/hostfile_exkeys su gpadmin # ----环境变量配置 # postgresql默认端口号5432 这里使用2345 cat <<EOF >> /home/greenplum/.bashrc source /usr/local/greenplum-db/greenplum_path.sh export PGPORT=2345 export PGUSER=gpadmin export MASTER_DATA_DIRECTORY=/home/greenplum/gpdata/master/gpseg-1 export PGDATABASE=gpdb # export LD_PRELOAD=/lib64/libz.so.1 ps EOF source /home/greenplum/.bashrc # ----节点host配置(单机版值配置一个master节点) cat <<EOF >> /home/greenplum/hostfile_exkeys risen EOF # ----ssh权限互通设置 gpssh-exkeys -f /home/greenplum/hostfile_exkeys [STEP 1 of 5] create local ID and authorize on local host [STEP 2 of 5] keyscan all hosts and update known_hosts file [STEP 3 of 5] authorize current user on remote hosts [STEP 4 of 5] determine common authentication file content [STEP 5 of 5] copy authentication files to all remote hosts [INFO] completed successfully # ----设置节点服务器(单机版就是master节点) cat <<EOF >> /home/greenplum/seg_hosts_file risen EOF # ----编辑gp初始化文件 cp /usr/local/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_config /home/greenplum/gpinitsystem_config vim /home/greenplum/gpinitsystem_config # 以下为配置文件内容 declare -a DATA_DIRECTORY=(/home/greenplum/gpdata/gpnode1 /home/greenplum/gpdata/gpnode2) MASTER_HOSTNAME=risen MASTER_PORT=2345 MASTER_DIRECTORY=/home/greenplum/gpdata/master DATABASE_NAME=gpdb # ---- 初始化(-s xx代表备用主节点是xx机器 单机无需配置) gpinitsystem -c gpinitsystem_config -h seg_hosts_file # ----设置节点服务器(单机版就是master节点) cat <<EOF >> /home/greenplum/seg_hosts_file risen EOF # ----编辑gp初始化文件 cp /usr/local/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_config /home/greenplum/gpinitsystem_config vim /home/greenplum/gpinitsystem_config # 以下为配置文件内容 declare -a DATA_DIRECTORY=(/home/greenplum/gpdata/gpnode1 /home/greenplum/gpdata/gpnode2) MASTER_HOSTNAME=risen MASTER_PORT=2345 MASTER_DIRECTORY=/home/greenplum/gpdata/master DATABASE_NAME=gpdb # ---- 初始化(-s xx代表备用主节点是xx机器 单机无需配置) gpinitsystem -c gpinitsystem_config -h seg_hosts_file |
10.初始化,输入Y继续...
成功
11.使用设置
1 2 3 4 5 6 7 8 9 10 | # psql登录修改密码 psql -p 2345 # 修改数据库密码 alter role gpadmin with password 'xxxxxx' ; # 远程连接配置 vim /home/greenplum/gpdata/master/gpseg-1/pg_hba.conf # 添加: host all gpadmin 0.0.0.0/0 md5 # 重新加载配置文件 gpstop -u |
下面截图中echo是我写脚本语言,不用
重新加载配置文件报错
1 2 3 | :-gpstop failed. (Reason= '[Errno 2] No such file or directory: ' /home/greenplum/gpdata/master/postgrsql # 解决 export MASTER_DATA_DIRECTORY=/home/greenplum/gpdata/master/gpseg-1 |
12.其他命令:
1 2 3 4 | gpstart #正常启动 gpstop #正常关闭 gpstop -M fast #快速关闭 gpstop –r #重启 |
13.附上脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | #!/bin/bash IPADDR= '192.168.209.21' HOSTNAME=risen PKGDIR=/home/greenplum #修改配置 HOSTDIR=/etc/hosts echo -e "\033[32m 修改主机名映射IP...\033[0m" > HOSTDIR echo "$IPADDR $HOSTNAME" >> $HOSTDIR #修改配置 HOSTNAMEDIR=/etc/hostname if [ $? -eq 0 ];then echo -e "\033[32m 修改主机名映射IP...\033[0m" > HOSTNAMEDIR echo '' $HOSTNAME '' > $HOSTNAMEDIR fi if [ $? -eq 0 ];then systemctl stop firewalld fi SELINUXCON=/etc/selinux/config if [ $? -eq 0 ];then echo -e "\033[32m 修改SELINUX...\033[0m" sed -i "s/SELINUX=\S*/SELINUX=disabled/" /etc/selinux/config fi if [ $? -eq 0 ];then echo -e "\033[32m 添加组及用户...\033[0m" groupadd gpadmin useradd -r -m -g gpadmin gpadmin echo "123456" | passwd --stdin gpadmin echo "RemoveIPC=no" >> /etc/systemd/logind.conf service systemd-logind restart fi if [ $? -eq 0 ];then echo -e "\033[32m 安装...\033[0m" rpm -Uvh greenplum-db-5.17.0-rhel7-x86_64.rpm fi if [ $? -eq 0 ];then echo -e "\033[32m 赋权...\033[0m" chown -R gpadmin /usr/local/greenplum* chgrp -R gpadmin /usr/local/greenplum* # 使环境变量生效 source /usr/local/greenplum-db/greenplum_path.sh fi if [ $? -eq 0 ];then echo -e "\033[32m 初始化准备...\033[0m" mkdir -p /home/greenplum/gpdata/master mkdir -p /home/greenplum/gpdata/gpnode1 mkdir -p /home/greenplum/gpdata/gpnode2 mkdir -p /home/greenplum/gpdata/gpnode3 mkdir -p /home/greenplum/gpdata/gpnode4 # 修改目录属主 chown -R gpadmin:gpadmin /home/greenplum/ chown -R gpadmin:gpadmin /home/greenplum/gpdata chown -R gpadmin:gpadmin /home/greenplum/gpdata/master chown -R gpadmin:gpadmin /home/greenplum/gpdata/gpnode* fi if [ $? -eq 0 ];then echo -e "\033[32m 切换用户...\033[0m" su gpadmin fi BASHRC=$PKGDIR/.bashrc if [ $? -eq 0 ];then echo -e "\033[32m 环境变量配置...\033[0m" > BASHRC echo 'source /usr/local/greenplum-db/greenplum_path.sh export PGPORT=2345 export PGUSER=gpadmin export MASTER_DATA_DIRECTORY=/home/greenplum/gpdata/master/gpseg-1 export PGDATABASE=gpdb' > $BASHRC fi if [ $? -eq 0 ];then source /home/greenplum/.bashrc fi HOSTFILEEXKEYS=$PKGDIR/hostfile_exkeys if [ $? -eq 0 ];then echo -e "\033[32m 环境变量配置...\033[0m" > HOSTFILEEXKEYS echo 'risen' > $HOSTFILEEXKEYS fi if [ $? -eq 0 ];then echo -e "\033[32m ssh权限互通设置...\033[0m" gpssh-exkeys -f /home/greenplum/hostfile_exkeys fi SEGHOSTSFILE=$PKGDIR/seg_hosts_file if [ $? -eq 0 ];then echo -e "\033[32m 环境变量配置...\033[0m" > SEGHOSTSFILE echo 'risen' > $SEGHOSTSFILE fi if [ $? -eq 0 ];then # ----编辑gp初始化文件 cp /usr/local/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_config /home/greenplum/gpinitsystem_config fi GPINITSYSTEMCONFIG=/home/greenplum/gpinitsystem_config if [ $? -eq 0 ];then echo -e "\033[32m 修改gpinitsystem_config...\033[0m" sed -i 's/\(DATA_DIRECTORY=\).*/\1(\/home\/greenplum\/gpdata\/gpnode1 \/home\/greenplum\/gpdata\/gpnode2)/' $GPINITSYSTEMCONFIG sed -i "s/MASTER_HOSTNAME=.*/MASTER_HOSTNAME=risen/" $GPINITSYSTEMCONFIG sed -i "s/MASTER_PORT=.*/MASTER_PORT=2345/" $GPINITSYSTEMCONFIG sed -i "s/#DATABASE_NAME=.*/DATABASE_NAME=gpdb/" $GPINITSYSTEMCONFIG fi if [ $? -eq 0 ];then # ---- 初始化(-s xx代表备用主节点是xx机器 单机无需配置) /home/greenplum/gpinitsystem -c gpinitsystem_config -h seg_hosts_file fi ############################################################# # 这一块暂时没找到执行自动化的工具,需要进入数据库,修改密码 # psql登录修改密码 psql -p 2345 # 修改数据库密码 alter role gpadmin with password 'xxxxxx' ; # 修改完成之后使用\q退出 ############################################################# GPHBADIR=/home/greenplum/gpdata/master/gpseg-1/pg_hba.conf if [ $? -eq 0 ];then echo -e "\033[32m 正在修改pg_hba.conf配置....\033[0m" > GPHBADIR echo 'host all gpadmin 0.0.0.0/0 md5' >> $GPHBADIR fi if [ $? -eq 0 ];then # 重新加载配置文件 gpstop -u fi |
备注:文档参考https://blog.csdn.net/yuanzhengme/article/details/120037965
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· RFID实践——.NET IoT程序读取高频RFID卡/标签