简单的Greenplum数据库的安装及配置步骤
(一)环境说明
(二)安装步骤
一、服务器说明
本手册中使用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错误,请
1、vim /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 8082 –l /data/log.txt &
回车2次
gpfdist –d /home/tomcat7/webapps/ROOT –p 8083 –l / 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
相关文章