简单的Greenplum数据库的安装及配置步骤

2023-03-06 00:00:00 创建 修改 链接 原文 附上

(一)环境说明

(二)安装步骤

一、服务器说明

本手册中使用2台服务器部署系统,其中master、segment各一台,主机名为xiaoya开头,ip地址为192.168.202网段,实际环境中可按需修改,服务器相关说明如下。


二、系统参数配置

(1)在测试的虚拟机环境中如硬盘分配不足可增加硬盘。真实环境需要根据硬盘实际情况进行设置,如果操作不当会导致客户数据丢失,不可恢复,切记要慎重、慎重、慎重。

(2)如初次安装linux时需要对硬盘重新分区并格式可参考下面parted分区操作。

#首先在vm中扩展或者增加硬盘在进入系统挂载硬盘

#查看现有分区

fdisk -l

#创建分区

fdisk /dev/sda

选择n创建分区,选择w写入分区,然后重启init 6

#重启后格式化新建的分区

mkfs –t ext4 /dev/sda4

#挂载分区到/data目录(/data目录必须存在)

mount /dev/sda4 /data

#设置系统启动时自动挂载

vim /etc/fstab

加上: /dev/sda4 /data ext4 defaults 1 2

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

#使用parted创建分区(大于2T以上磁盘使用该方法)

#如果操作不当会导致客户数据丢失,不可恢复,切记要慎重、慎重、慎重。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

#进入parted分区工具

parted /dev/sdb

#创建磁盘并指定磁盘类型

mklabel gpt (或者输入mklabel,根据提示输入类型:gpt)

#根据系统提示,确认并销毁磁盘上的数据,选择yes

yes

#创建主分区

mkpart

#系统提示输入分区名称?

Primary (或者直接回车)

#系统提示输入文件系统类型?[ext2]?

ext4(这里可以使用xfs文件系统类型)

#起始点?



#结束点?

-1

#系统弹出警告,选择忽略

Ignore

#分区完成后使用print可以看到刚才分区的信息

print

#退出parted分区工具

quit

#可选1:格式化磁盘文件系统为EXT4

mkfs.ext4 /dev/sdb1

#可选2:或者格式化磁盘文件系统为xfs,注意:xfs需要安装rmp软件包:

rpm –ivh xfsprogs-3.1.1-4.1.x86_64.rpm(该软件包在/os目录下)

#可选2_1:格式化磁盘文件系统为xfs(gp文档推荐使用xfs文件系统:144页)

mkfs.xfs -f /dev/sdb1

#设置系统启动时自动挂载

#查看磁盘分区uuid,找到需要挂载磁盘的UUID

blkid

#将uuid添加到fstab,挂载在/data目录下(注意:/data必须存在)

vim /etc/fstab

#ext4类型

加上: UUID=... /data ext4 defaults 1 2

#xfs类型

加上: UUID=... /data xfs rw,noatime,inode64,allocsize=16m 1 1

#重新挂载/etc/fstab文件中的记录

mount –a(或者单独挂载mount /dev/sdb1 /data)

#查看磁盘分区情况(T是查看文件类型)

df –hT
————————————————
版权声明:本文为CSDN博主「[小文]」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dexter701/article/details/119025553

(3)修改的主机名(需每台修改)

#rhel6.x版本修改主机名

#查看主机名

hostname

#修改主机名,重启生效

vim /etc/sysconfig/network

#添加以下内容:

HOSTNAME=<hostname>

#其中<hostname>在各台机器上分别设为xiaoya01、xiaoya02

#rhel7.x版本修改主机名

#查看主机名

hostname

#修改主机名,重启生效

#方法一:直接编辑/etc/hostname文件 #新增内容:主机名

vim /etc/hostname

#添加以下内容:

<hostname>

#其中<hostname>在各台机器上分别设为awaken01、awaken02...

#方法二:使用nmtui图形工作设置,重启生效
————————————————
版权声明:本文为CSDN博主「[小文]」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dexter701/article/details/119025553


(4)设置IP地址(需每台修改)

#查看网卡是否连接网络

ethtool eth0(speed显示速度,即连接网络,显示unknown为未连接网络)

#方法一(推荐):在图形界面中的设置ip地址(左上>系统>首-选项>网络连接)

配置ip时,注意勾中“自动连接”

#方法二:使用setup命令设置ip,设置后重新启动网卡。

setup

#先关闭网卡

ifdown eth0

#再重新启动

ifup eth0

注意:配置ip时如果出现device eth0 does not seem to be present, delaying initialization错误,请

1vim /etc/sysconfig/network-scripts/ifcfg-eth0

ifcfg-eth0的配置文件里保存了以前的MAC地址,就把这一行删除掉在重启网卡

ONBOOT=yes

2、rm -rf /etc/udev/rules.d/70-persistent-net.rules

3、reboot

#方法三(推荐):可直接修改/etc/sysconfig/network-scripts/ifcfg-eth0文件修改ip

注意:在实际环境中,可将服务器一半网卡接入网络中,并分别配置ip
————————————————
版权声明:本文为CSDN博主「[小文]」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dexter701/article/details/119025553

(5)设置防火墙(需每台修改)

#rhel6.x设置防火墙

#查看防火墙状态 service iptables status

#关闭防火墙 service iptables stop

#关闭开机启动 chkconfig iptables off

#rhel7.x设置防火墙

#查看防火墙状态 systemctl status firewalld

#显示防火墙状态 firewall-cmd --state

#临时关闭防火墙 systemctl stop firewalld

#永-久关闭防火墙 systemctl disable firewalld

#永-久开启防火墙 systemctl enable firewalld
————————————————
版权声明:本文为CSDN博主「[小文]」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dexter701/article/details/119025553

(6)关闭selinux服务(需每台修改)

#永-久关闭SELINUX

需修改/etc/selinux/config配置文件,修改配置为SELINUX=disabled

#临时关闭SELINUX

setenforce 0


三、Greenplum安装

====环境准备====

(1)修改linux系统参数(每个节点都需要配置)

vim /etc/sysctl.conf

#将sysctl.conf中的内容替换为如下(测试环境中绿色部分去一个):

kernel.shmmax = 5000000000

kernel.shmmni = 4096

kernel.shmall = 40000000000

kernel.sem = 250 5120000 100 20480

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 =

net.ipv4.conf.default.accept_source_route =

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_max_syn_backlog = 4096

net.ipv4.conf.default.rp_filter = 1

net.ipv4.conf.default.arp_filter = 1

net.ipv4.conf.all.arp_filter = 1

net.ipv4.ip_local_port_range = 1025 65535

net.core.netdev_max_backlog = 10000

vm.overcommit_memory = 2

vm.swappiness = 1

#执行sysctl -p生效

sysctl -p
————————————————
版权声明:本文为CSDN博主「[小文]」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dexter701/article/details/119025553

(2)修改文件开启个数限制(每个节点都需要配置)

#在/etc/security/limits.conf配置文件末尾处增加如下内容:

vim /etc/security/limits.conf

* soft nofile 65536

* hard nofile 65536

* soft nproc 131072

* hard nproc 131072

* soft core unlimited

注意:对于RedHat6.x系统,还需要将/etc/security/limits.d/90-nproc.conf文件中的1024修改为131072

vim /etc/security/limits.d/90-nproc.conf

注意:对于RedHat7.x系统,还需要将/etc/security/limits.d/20-nproc.conf文件中的4096修改为131072

vim /etc/security/limits.d/20-nproc.conf
————————————————
版权声明:本文为CSDN博主「[小文]」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dexter701/article/details/119025553

(3)修改linux磁盘I/O调度策略(每个节点都需要配置) 【测试环境可忽略】

#查看某个驱动器的I/O调度策略

cat /sys/block/sda/queue/scheduler

noop anticipatory [deadline] cfq

#修改磁盘I/O调度策略

vim /boot/grub/menu.lst

#在kernel一行后追加“elevator=deadline”

注意:修改该配置文件需谨慎,错误的修改会导致重启操作系统失败。
————————————————
版权声明:本文为CSDN博主「[小文]」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dexter701/article/details/119025553

(4)配置设备块大小(每个节点都需要配置)#修改系统的read-ahead设置:


vim /etc/rc.d/rc.local

#sof在文件尾部追加:

blockdev --setra 65536 /dev/sd*

#重启,查看是否生效

blockdev --getra /dev/sda

(5)配置hosts文件(每个节点都需要配置)

vim /etc/hosts

127.0.0.1 localhost localhost.localdomain #注意:此行勿删

192.168.202.10 xiaoya01

192.168.202.11 xiaoya02

#注意:如果实际环境中,一台服务器多个ip,那么需要都写入hosts中,如:

192.168.202.10 xiaoya01

192.168.202.11 xiaoya01

192.168.202.12 xiaoya02

192.168.202.13 xiaoya02
————————————————
版权声明:本文为CSDN博主「[小文]」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dexter701/article/details/119025553

(6)在GP主节点上创建数据节点文件(一个含mstar,一个不含)

vim /data/hostfile

xiaoya01

xiaoya02

vim /data/hostfile_seg

xiaoya02

====集群安装====

(7)解压Greenplum安装包

unzip greenplum-db-4.3.6.2-build-1-RHEL5-x86_64.zip

(8)运行Greenplum安装文件

#运行安装文件

./greenplum-db-4.3.6.2-build-1-RHEL5-x86_64.bin

#安装程序会提示接收GPDB许可协议,输入yes即可。

#安装程序会提示输入安装路径,输入一个安装路径,如:

/data/greenplum/greenplum-db
————————————————
版权声明:本文为CSDN博主「[小文]」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dexter701/article/details/119025553

(9)安装节点

#交换ssh密钥

unset OPENSSL_CONF

source /data/greenplum/greenplum-db/greenplum_path.sh

gpssh-exkeys -f /data/hostfile

#使用刚刚创建的hostfile文件运行gpdeginstall命令。使用-u和-p参数在所有主机

上创建GP系统用户(gpadmin)并设置该用户的密码。例如:

gpseginstall -f /data/hostfile -u gpadmin -p gpadmin

#注意,此步骤完成后会在各个数据节点中创建和主节点相同的目录,如: /data/greenplum/greenplum-db

如果没有创建说明安装失败,请重复:步骤6)

#确认安装,检查能否无密码登录,安装包是否被解压到各节点上面

su – gpadmin

source /data/greenplum/greenplum-db-4.3.6.2/greenplum_path.sh

gpssh –f /data/hostfile –e ls –l $GPHOME

如果成功登录并且未提示输入密码,则安装成功。否则需要重新交换ssh密钥:

unset OPENSSL_CONF

gpssh-exkeys -f /data/hostfile

#验证

ssh xiaoya02
————————————————
版权声明:本文为CSDN博主「[小文]」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dexter701/article/details/119025553

(10)创建数据存储区域


#在Master主机上创建数据目录位置,以root身份执行下面的命令

su -

mkdir /data/greenplum/master

#修改目录的所有权信息。例如:

chown gpadmin:gpadmin /data/greenplum/master

#使用gpssh命令,在所有Segment主机上创建Primary的数据存储位置。

#使用刚刚创建的host_file_seg文件指定Segment主机列表。例如:

su -

source /data/greenplum/greenplum-db/greenplum_path.sh

gpssh -f /data/hostfile_seg -e 'mkdir /data/greenplum/primary'

gpssh -f /data/hostfile_seg -e 'chown gpadmin:gpadmin /data/greenplum/primary'

如果创建时报ssh失败,需要重新交换root用户的ssh密钥:

su –

source /data/greenplum/greenplum-db/greenplum_path.sh

unset OPENSSL_CONF

gpssh-exkeys -f /data/hostfile

如果交换ssh密钥时,又报错

“Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).”,有可能是SELinux没关闭,可执行下面命名关闭:

setenforce
————————————————
版权声明:本文为CSDN博主「[小文]」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dexter701/article/details/119025553

(11)同步系统时钟【测试环境可忽略】

#在Master主机,以root登录编辑/etc/ntp.conf文件

vim /etc/ntp.conf

server 10.6.220.20 (10.6.220.20是数据中心NTP服务器的IP地址)

#各Segment主机上的时钟以master为准

vim /etc/ntp.conf

server xiaoya01

#在Master主机,使用NTP守护进程同步所有Segment主机的系统时钟

gpssh -f /data/hostfile_seg -v -e 'ntpd'

#开启ntpd服务,并设置开机自动运行

/etc/init.d/ntpd start

chkconfig --level 35 ntpd on


————————————————
版权声明:本文为CSDN博主「[小文]」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dexter701/article/details/119025553

(12)检查系统环境【测试环境可忽略】

#检查操作系统配置

#以gpadmin用户登录Master主机

su - gpadmin

#加载GP安装目录的greenplum_path.sh文件

source /data/greenplum/greenplum-db/greenplum_path.sh

#检查系统环境

gpcheck -f /data/hostfile -m xiaoya01

在gpcheck完成检查所有主机的OS参数之后,可能会给出对OS参数的修改意见,这些修改应该在GPDB系统初始化之前修改完成。
————————————————
版权声明:本文为CSDN博主「[小文]」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dexter701/article/details/119025553


====集群初始化====

(13)创建GPDB 配置文件

#创建GPDB配置文件,以gpadmin登录

su – gpadmin

source /data/greenplum/greenplum-db/greenplum_path.sh

#拷贝gpinitsystem_config文件

cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config /home/gpadmin/ gpinitsystem_config

#修改gpinitsystem_config文件

chmod 777 gpinitsystem_config

vim gpinitsystem_config

declare -a DATA_DIRECTORY=(/data/greenplum/primary /data/greenplum/primary /data/greenplum/primary /data/greenplum/primary)

MASTER_HOSTNAME=xiaoya01

MASTER_DIRECTORY=/data/greenplum/master
————————————————
版权声明:本文为CSDN博主「[小文]」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dexter701/article/details/119025553

(14)运行初始化命令

#创建GPDB配置文件,以gpadmin登录

su – gpadmin

source /data/greenplum/greenplum-db/greenplum_path.sh

gpinitsystem -c gpinitsystem_config -h /data/hostfile_seg

#命令将自动检查安装信息,确认可以连接到每个HostName,可以访问配置文件中指定的每个目录。如果检查都通过了,将会提示确认配置信息。例如:

> Continue with Greenplum creation? Yy/Nn

#输入y以开始初始化

#在成功安装初始化结束时,命令将会启动GPDB系统,并可以看到如下提示信息:

=> Greenplum Database instance successfully created.

#注意(1):

CenterOS系统在初始化时如报:“Failed Update port number to 40001”。

解决方法:

1.所有节点安装ed # rpm ed-1.1-3.3.el6.x86_64.rpm(该软件包在/os目录下)

附ed下载地址:

http://www.filewatcher.com/d/CentOS/x86_64/Applications/Text/ed-1.1-3.3.el6.x86_64.rpm.73652.html

清除初始化系统的信息
/bin/bash ~/gpAdminLogs/backout_gpinitsystem_gpadmin_<timestamp>

重新初始化系统
gpinitsystem -c gpinitsystem_config -h /data/hostfile_seg

#注意(2):

如遇到其它初始化错误,可参考“Greenplum4.2.2管理员指南-2015修订.pdf”第154页后的“初始化故障排除”和“使用撤销脚本”章节。
————————————————
版权声明:本文为CSDN博主「[小文]」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dexter701/article/details/119025553

(15)设置GP环境变量

#创建GPDB配置文件,以gpadmin登录

su – gpadmin

#打开用户启动文件

vim ~/.bashrc

添加新行

source /data/greenplum/greenplum-db/greenplum_path.sh

export MASTER_DATA_DIRECTORY=/data/greenplum/master/gpseg-1

保存后exit退出,再使用su – gpadmin 可生效
————————————————
版权声明:本文为CSDN博主「[小文]」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dexter701/article/details/119025553

(16)启动GP

#停止gp

gpstop –a –M fast

#启动gp

gpstart -a

#查看状态

gpstate

#重启gp

gpstop -r

(17)GP建库

#启动gp

gpstart -a

#查看当前所有库

psql –l

#使用postgres库

psql postgres

#创建数据库

create database xiaoya;

#添加其他客户端访问gpdb(比如说其他电脑上的etl\tomcat连接gp, 参考文档第33页)

vim /data/greenplum/master/gpseg-1/pg_hba.conf

#增加客户端单个ip地址访问

host all gpadmin 192.168.1.10/32 trust

#增加客户端某一网段ip地址访问

host all gpadmin 192.168.1.0/24 trust

#重新加载pg_hba.conf文件使修改生效

gpstop –u

#使用root用户创建文件空间

mkdir /data/greenplum/warehouse

mkdir /data/greenplum/warehouse/master

mkdir /data/greenplum/warehouse/primary

chown -R gpadmin:gpadmin /data/greenplum/warehouse

#注意:每台机器都需要创建文件空间,可使用

su -

source /data/greenplum/greenplum-db/greenplum_path.sh

gpssh -f /data/hostfile_seg -e 'mkdir /data/greenplum/warehouse'

gpssh -f /data/hostfile_seg -e 'chown gpadmin:gpadmin /data/greenplum/warehouse'

或者

scp -r /data/greenplum/warehouse/ root@192.168.1.101:/data/greenplum/warehouse/

命令复制,注意授权给gpadmin用户)

#来进行创建文件空间(接上面注意)。

#使用gpadmin用户登录到master主机

su – gpadmin

#创建一个文件空间的配置文件

gpfilespace –o gpfilespace

#将会提示输入一个文件空间的名称、primary文件系统位置、master文件系统位置,如:

enter a name for this filespace> fastdisk

primary location 1> /data/greenplum/warehouse/primary

primary location 2> /data/greenplum/warehouse/primary

master location> /data/greenplum/warehouse/master

#再次执行该命令,基于之前生成的配置文件创建文件空间:

gpfilespace --config /home/gpadmin/gpfilespace

#创建表空间:

psql xiaoya

create tablespace warehouse filespace fastdisk;

#创建表:create table test(c1 text, c2 text);

#查看表:\d

#查看表结构:\d test

#退出psql:\q

#使用pgAdmin创建表

create table test2

(

a1 varchar(100),

a2 varchar(100)

)WITH (appendonly=true, orientation=column) TABLESPACE warehouse DISTRIBUTED RANDOMLY;
————————————————
版权声明:本文为CSDN博主「[小文]」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dexter701/article/details/119025553

(18)使用ETL进行DM到GP的数据迁移

#找到 dmetl4\gploaderp\loader.ini文件

修改:IP=192.168.202.10(为dmetl服务器的ip地址)

修改:AUTOSTART=1(为dmetl自动启动gpfdist服务)

#在etl数据中添加Greenplum数据库数据源

数据库类型:Greenplum

主机名:192.168.202.10

用户名:gpadmin

密码:gpadmin

端口:5432

默认数据库:xiaoya

#建议:大数据量使用“Greenplum快速装载”节点、小数据可以用“数据表”节点。
————————————————
版权声明:本文为CSDN博主「[小文]」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dexter701/article/details/119025553

(19)GP外部表简单使用(需要启动gpfdist服务)

-- 创建分隔符为(竖线)的外部表

create external table ext_person(

name varchar,

addr varchar

) location ('gpfdist://192.168.1.200:8081/111.txt')

format 'text' (delimiter '|' NULL '' escape 'off') ENCODING 'UTF8';

-- 创建分隔符为(\u0001)的外部表

create external table ext_person(

name varchar,

addr varchar

) location ('gpfdist://192.168.1.200:8081/111.txt')

format 'text' (delimiter E'\001' NULL '' escape 'off') ENCODING 'UTF8'

-- 创建(CSV)的外部表

create external table ext_person(

name varchar,

addr varchar

) location ('gpfdist://192.168.1.200:8081/test/1.txt')

format 'CSV';
————————————————
版权声明:本文为CSDN博主「[小文]」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dexter701/article/details/119025553

(三)服务启动与关闭

(1)启动Greenplum服务(只用启动主节点服务)


#切换gp用户

su - gpadmin

#启动gp服务

gpstart –a

#切换gp用户

su - gpadmin

#停止gp服务

gpstop –a –M fast

#查看gp服务

ps -ef|grep greenplum

#开启2个gpfdist服务(必须开启)

#注意:需要把“/data”和“tomcat”目录授权给gpadmin

chown gpadmin:gpadmin /data

chown gpadmin:gpadmin /home/tomcat6/webapps/ROOT

#开启gpfdist服务

su – gpadmin

gpfdist –d /data –p 8082l /data/log.txt &

回车2

gpfdist –d /home/tomcat7/webapps/ROOT –p 8083l / home/tomcat6/log.txt &

回车2
————————————————
版权声明:本文为CSDN博主「[小文]」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dexter701/article/details/119025553

(四)linux常用命令参考




本文来源:https://blog.csdn.net/dexter701/article/details/119025553

相关文章