环境准备
4台ubuntu16.04
集群配置(hostname、hosts配置)
实现hostname映射到ip地址,在后续配置文件中需要用hostname进行配置,为方便记忆,master的hostname为gp-master,segment的hostname为gp-segment1到gp-segment3
Master配置
su进入root
更改主机名、配置hosts文件,通过主机名找到ip地址
echo 'gp-master' > /etc/hostname
echo '192.168.0.100 gp-master' >> /etc/hosts
echo '192.168.0.101 gp-segment1' >> /etc/hosts
echo '192.168.0.102 gp-segment2' >> /etc/hosts
echo '192.168.0.103 gp-segment3' >> /etc/hosts
segement配置
与master基本相同,其中
echo 'gp-master' > /etc/hostname
中的’gp-master’改为对应的segment1到3
新建用户
这一步的意义在于之后的实现中需要在每台机子的相同位置创建一个文件夹用于存储,ubuntu的home路径其实为/home/用户名/… ,如果几台机子本来的用户名不同home路径就不同,则需要在系统根目录创建,根目录有权限限制,这样还需要多一步配置文件夹权限的步骤
master、segement操作相同
adduser gpadmin
echo 'gpadmin ALL=(ALL:ALL) ALL' >> /etc/sudoers
reboot
重启后登录新建的gpadmin
su gpadmin
新建文件夹
master
mkdir /gpmaster
master、segment
mkdir /primary
安装
master、segment
cd ~
sudo apt-get install python-software-properties
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:greenplum/db
sudo apt-get update
sudo apt-get install greenplum-db-oss
秘钥交换
之后的操作全在master进行
打开一个新的命令窗,加载greenplum专用环境变量
source /opt/gpdb/greenplum_path.sh
创建主机列表文件
touch hostlist_singlenode
echo 'gp-master' >> hostlist_singlenode
echo 'gp-segment1' >> hostlist_singlenode
echo 'gp-segment2' >> hostlist_singlenode
echo 'gp-segment3' >> hostlist_singlenode
秘钥交换
gpssh-exkeys -f hostlist_singlenode
配置文件
复制配置文件到/home目录
cd ~
cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_singlenode .
使用gedit打开复制来的gpinitsystem_singlenode进行一下配置:
MACHINE_LIST_FILE=./hostlist_singlenode
declare -a DATA_DIRECTORY=(/home/gpadmin/primary)
MASTER_HOSTNAME=gp-master
MASTER_DIRECTORY=/home/gpadmin/gpmaster
上面的DATA_DIRECTORY就是之前说的要每台机子路径相同的数据存储文件夹,这里还有个骚用法可以用空格隔开写多个文件夹进去例如(/home/gpadmin/data1 /home/gpadmin/data2),这样每台机子的文件夹会翻倍,最后系统的节点也会翻倍,一般一个cpu设置
初始化
回到秘钥交换时的命令窗口,输入
/opt/gpdb/bin/gpinitsystem -c gpinitsystem_singlenode
他会问是否继续,默认是否,输入y回车继续
也许会报错说环境变量没有MASTER_DATA_DIRECTORY,输入
export MASTER_DATA_DIRECTORY=/home/gpadmin/gpmaster/gpsne-1
测试
以下是官网的操作
createdb demo
psql demo
create table foo(id int);
insert into foo values(1);
select * from foo;
seletc * from gp_segment_configuration
使用
每次打开新的命令窗,都需要重新引入环境变量
source /opt/gpdb/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/home/gpadmin/gpmaster/gpsne1
启动 gpstart
登录 psql
停止 gpstop
更多操作建议百度