UBUNTU16.04上的greenplum搭建

环境准备

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
更多操作建议百度

0%