greenplum ubuntu16 集群安装
虚拟机vmware安装ubuntu16 一台,然后用克隆克隆出2台,一共三台
master主机上2个segment节点,segment主机上各2个segement节点
在Master安装
更改hostname gp-master
echo 'gp-master' > /etc/hostname
新增三台主机的内网IP以及修改hostname
echo '192.168.152.133 gp-master' >> /etc/hosts echo '192.168.152.131 gp-segment1' >> /etc/hosts echo '192.168.152.134 gp-segment2' >> /etc/hosts
apt-get update
新增用户gpadmin
添加gpadmin用户 设置密码gpadmin123
adduser gpadmin
添加gpadmin到sudo用户列表
echo 'gpadmin ALL=(ALL:ALL) ALL' >> /etc/sudoers
重启主机reboot后,切换到gpadmin
su gpadmin
在gp-master上创建 /gpmaster /gpdata1 /gpdata2 文件夹
mkdir /gpmaster /gpdata1 /gpdata2
开始安装相关依赖包,以及GP数据库
cd ~ sudo apt-get install python-software-properties sudo apt-get install software-properties-common sudo add-apt-repository ppa:greenplum/db #添加PPA路径 sudo apt-get update #再次进行更新 sudo apt-get install greenplum-db-oss
以下操作在各个segment上分别进行
更改hostname gp-segment
echo 'gp-segment' > /etc/hostname
新增两台主机的内网IP以及修改hostname
echo '192.168.152.133 gp-master' >> /etc/hosts
echo '192.168.152.131 gp-segment1' >> /etc/hosts echo '192.168.152.134 gp-segment2' >> /etc/hosts
apt-get update
新增用户gpadmin
添加gpadmin用户 设置密码gpadmin123
adduser gpadmin
添加gpadmin到sudo用户列表
echo 'gpadmin ALL=(ALL:ALL) ALL' >> /etc/sudoers
重启主机reboot后,切换到gpadmin
su gpadmin
在gp-master上创建 /gpdata1 /gpdata2 文件夹
mkdir /gpdata1 /gpdata2
开始安装相关依赖包,以及GP数据库
cd ~ sudo apt-get install python-software-properties sudo apt-get install software-properties-common sudo add-apt-repository ppa:greenplum/db #添加PPA路径 sudo apt-get update #再次进行更新 sudo apt-get install greenplum-db-oss
下载安装完成,接下来要执行秘钥交换,回到master主机 用户为gpadmin下进行ssh秘钥交换,首先加载环境变量
source /opt/gpdb/greenplum_path.sh
这一步之后可以将/opt/gpdb/greenplum_path.sh中的所有内容复制到/etc/profile中,之后每次登录就可以通过source /etc/profile来解决greenplum环境变量的问题
cd ~ cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_singlenode .
touch hostlist_singlenode/etc/profile来解决greenplum环境变量的问题
echo 'gp-master' >> hostlist_singlenode echo 'gp-segment1' >> hostlist_singlenode echo 'gp-segment2' >> hostlist_singlenode
进行秘钥交换
gpssh-exkeys -f hostlist_singlenode
或者
gpssh-exchkeys -f hostlist_singlenode
如果报错
source /opt/gpdb/greenplum_path.sh 或者 source /etc/profile
hostlist_singlenode gpinitsystem_singlenode 是复制到 /opt/gpdb 目录下
gpinitsystem_singlenode中修改
MACHINE_LIST_FILE=./hostlist_singlenode
数据节点
declare -a DATA_DIRECTORY=(/gpdata1 /gpdata2)
主服务器名
MASTER_HOSTNAME=gp-master
master目录
MASTER_DIRECTORY=/gpmaster
将这些文件夹权限修改为gpadmin
在master上执行
chown gpadmin.gpadmin -R /gpdata1 /gpdata2 /gpmaster
在segement上执行
chown gpadmin.gpadmin -R /gpdata1 /gpdata2
master和segement上都要关掉防火墙
sudo ufw disable
初始化命令
/opt/gpdb/bin/gpinitsystem -c /opt/gpdb/gpinitsystem_singlenode
如果启动后连接报错
System was started in master-only utility mode - only utility mode connections are allowed
原因 维护模式 这样就初始化有问题 把/gpmaster/gpsne-1 里的gpsne-1 文件夹删掉
重启ubuntu
reboot
然后再初始化
一般就会成功了
如果访问出现failure during startup recovery, retry failed, check segment status
一般是防火墙没关,
如果用pgadmin不能连接,提示拒绝,就要在master机上
/gpmaster/gpsne-1 里的pg_hba.conf 加上
host all all 0.0.0.0/0 md5
这是所有的,可以按需要加入某个ip
ll -a
显示隐藏的文件 .bashrc
把下面这些加入用户环境
cd /home/gpadmin vi .bashrc 加上 export MASTER_DATA_DIRECTORY='/gpmaster/gpsne-1' export PGPORT=5432 source /opt/gpdb/greenplum_path.sh
然后再
source .bashrc
一般这就没问题了
重新加载配置文件
pg_ctl reload -D /gpmaster/gpsne-1/
修改数据用户密码
psql -d postgres
alert role gpadmin with password 'gpadmin';
下面这句用来查某个表的分片分布
select gp_segment_id, count(*) from user_test group by gp_segment_id;
后续要加个备选 主库
然后再尝试动态加一个 从库segment