博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Greenplum 部署简介
阅读量:7099 次
发布时间:2019-06-28

本文共 6216 字,大约阅读时间需要 20 分钟。

hot3.png

1. 分布式部署

此节主要介绍 Greenplum 数据库的几种部署方式,和常见问题。

1.1 基础部署

1.1.1 初始化操作系统(所有节点都需要做此项工作)
  • 创建用户和组 gpadmin
[root@xxx]# groupadd -g 3030 gpadmin[root@xxx]# useradd -u 3030 gpadmin -g gpadmin -d /home/gpadmin[root@xxx]# passwd gpadmin
  • 配置内核参数,添加如下内容
[root@xxx]# nano /etc/sysctl.conf #By greenplumnet.ipv4.ip_forward = 0net.ipv4.conf.default.accept_source_route = 0kernel.sysrq = 1kernel.core_uses_pid = 1net.ipv4.tcp_syncookies = 1kernel.msgmnb = 65536kernel.msgmax = 65536kernel.sem = 250 64000 100 512kernel.shmmax = 500000000kernel.shmmni = 4096kernel.shmall = 4000000000kernel.sem = 250 64000 100 512net.ipv4.tcp_tw_recycle=1net.ipv4.tcp_max_syn_backlog=4096net.core.netdev_max_backlog=10000vm.overcommit_memory=2net.ipv4.conf.all.arp_filter = 1
  • 手工执行命令,让参数生效
[root@xxx]# sysctl -p
  • 在limits.conf文件中添加如下配置
[root@xxx]# nano /etc/security/limits.conf* soft nofile 65536* hard nofile 65536* soft nproc 131072* hard nproc 131072
  • 调整IO调度算法 修改内核参数,添加如下配置,调整IO调度算法:(重启系统才能生效)
[root@xxx]# nano /boot/grub/menu.lstelevator=deadline
  • 设置磁盘预读,优化磁盘IO效率(重启系统才能生效)
[root@xxx]# nano /etc/rc.d/rc.localblockdev --setra 16384 /dev/sd*
  • 安装其他必备系统软件

此处以 CentOS 7.2 (1511) 为例。

  • 解压缩 greenplum 安装包使用
yum -y install unzip
  • 监控系统负载使用(mpstat,iostat等)
yum -y install sysstat
  • Greenplum 扩展节点时需要使用到 Perl
yum -y install perl
  • 防火墙设置

用户可以详细配置系统防火墙允许的端口,由于 Greenplum 使用到的端口较多,这里选择关闭。

systemctl stop firewalldsystemctl disable firewalld
  • 重启系统
[root@xxx]# reboot
1.1.2 检查操作系统参数

重新启动后,应该逐一对各项参数进行检查。

  • 验证内核参数配置是否生效
[root@xxx]# cat /sys/block/*/queue/schedulernoop anticipatory deadline [cfq] noop anticipatory deadline [cfq] 输出的行应该含有[deadline]
  • 验证磁盘预读预读配置
修改前:[root@xxx]# blockdev --getra /dev/sd*256256256256256修改后:[root@xxx]# blockdev --getra /dev/sd*1638416384163841638416384
1.1.3 开始安装 Greenplum 数据库

此处假设有 3 个节点,即: mdw,sdw01,sdw02。

需要在所有节点进行配置:

  • 修改 hosts 文件配置如下
su rootnano /etc/hosts10.20.17.178 mdw10.20.17.179 sdw110.20.17.180 sdw2
  • 添加 gpadmin 用户
groupadd -g 3030 gpadminuseradd -u 3030 gpadmin -g gpadmin -d /home/gpadminpasswd gpadmin
  • 在 mdw (主节点)上安装 greenplum greenplum-db-4.3.11.3-rhel5-x86_64.zip 安装压缩包 已经预先放置在所有节点的 /home/gpadmin/gpdb_install_package 下
cd /home/gpadmin/gpdb_install_packagesu gpadminunzip greenplum-db-4.3.11.3-rhel5-x86_64.zipsu root./greenplum-db-4.3.11.3-rhel5-x86_64.bin
  • 赋权
chown -R gpadmin:gpadmin /usr/local/green*
  • 添加 all_hosts 和 seg_hosts 文件
su gpadmincd ~nano all_hostsmdwsdw1sdw2nano seg_hostssdw1sdw2
  • 建立文件夹并赋权
su rootmkdir -p /tol/mastermkdir -p /tol/data/gp1mkdir -p /tol/data/gp2mkdir -p /tol/data/gp3mkdir -p /tol/data/gp4chown -R gpadmin:gpadmin /tol/masterchown -R gpadmin:gpadmin /tol/data/gp*
  • 修改 .bash_profile 文件 注意所有节点都需要建立此文件并执行后才能执行 gpinitsystem -c gpinitsystem_config 这是非常重要的步骤!
su gpadmincd ~nano .bash_profilesource /usr/local/greenplum-db/greenplum_path.shexport MASTER_DATA_DIRECTORY=/tol/master/gpseg-1export PGPORT=5432export PGUSER=gpadminexport PGDATABASE=gpdb1source .bash_profile
  • 建立节点信任
gpssh-exkeys -f all_hosts
  • 打包主节点上的安装文件
su rootcd /usr/local/tar -cvf gpdb4.3.tar greenplum-db-4.3.11.3
  • 将包传至 各个节点的 usr/local/
scp gpdb4.3.tar root@sdw1:/usr/local/scp gpdb4.3.tar root@sdw2:/usr/local/
  • 在 段节点(从节点) 进行操作

  • 解压安装包

su rootcd /usr/local/tar -vxf gpdb4.3.tarln -s greenplum-db-4.3.11.3 greenplum-dbchown -R gpadmin:gpadmin /usr/local/green*
  • 添加需要的文件夹
su rootmkdir -p /tol/mastermkdir -p /tol/data/gp1mkdir -p /tol/data/gp2mkdir -p /tol/data/gp3mkdir -p /tol/data/gp4chown -R gpadmin:gpadmin /tol/masterchown -R gpadmin:gpadmin /tol/data/gp*
  • 回到 主节点 配置初始化文件
su gpadmincp /usr/local/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_config .
  • 修改 gpinitsystem_config 文件
nano gpinitsystem_configdeclare -a DATA_DIRECTORY=(/tol/data/gp1 /tol/data/gp2 /tol/data/gp3 /tol/data/gp4)MASTER_HOSTNAME=mdwMASTER_DIRECTORY=/tol/masterDATABASE_NAME=gpdb1MACHINE_LIST_FILE=/home/gpadmin/seg_hosts
  • 初始化数据库(-a为不提示安装)
gpinitsystem -c gpinitsystem_config -a
1.1.4 安装完毕后数据库初始设置
  • 安装结束后可以连接GP数据库了:
[gpadmin@xxx]$ psql -d gpdb1psql (8.2.15)Type "help" for help.goolen=# \q
  • 初始设置, 设置密码
psql -h mdw -p 5432 -d gpdb1 -U gpadminalter role gpadmin with password 'gpadmin';
  • 修改远程访问(检查你的IP段进行设置)
nano $MASTER_DATA_DIRECTORY/pg_hba.conf增加host all all 10.20.17.0/24 md5
  • 重新加载配置
gpstop -u
  • 查询数据分布,users_info 是 自己创建的表, 数据会均匀分布在 sdw1 和 sdw2 节点 的 上 /tol/data/gp1 ~ /tol/data/gp4 上,共 8 个段
select gp_segment_id, count(*) from users_info group by gp_segment_id;gpdb1=# select gp_segment_id, count(*) from users_info group by gp_segment_id; gp_segment_id | count ---------------+-------             7 |   133             3 |   130             4 |   130             0 |   113             1 |   118             2 |   115             6 |   142             5 |   121

1.2 无镜像模式部署

假设你拥有 3 个节点,分别为 mdw,sdw01,sdw02。在这种情况下,对 sdw 中的 segment 的数量Greenplum 没有限制,但是 Linux 内核信号量限制在 40 个左右(建议不要超过 32 个)。初始化时需要将 gpinitsystem_config 中所有与镜像模式相关的选项全部注释。初始化命令如下:

gpinitsystem -c gpinitsystem_config -a

典型的就是上述的这种基础部署这种模式。

1.3 添加新节点

  • 首先需要对新节点进行系统初始化 参考基础部署中的初始化系统。并将安装包拷贝至新节点指定位置 /usr/local ,解压,并建立快捷方式。

  • 在 mdw节点 上添加节点 略

1.4 镜像模式部署

假设你拥有 3 个节点,分别为 mdw,sdw01,sdw02。sdw01 做 standby,Greenplum 对 sdw 中的 segment 限制为 1 个(只能为1),内部机制为交叉备份。修改配置文件gpinitsystem_config为:

ARRAY_NAME="EMC Greenplum DW"SEG_PREFIX=gpsegPORT_BASE=40000declare -a DATA_DIRECTORY=(/tol/data/gp1)MASTER_HOSTNAME=mdwMASTER_DIRECTORY=/tol/masterMASTER_PORT=5432TRUSTED_SHELL=sshCHECK_POINT_SEGMENTS=8ENCODING=UNICODE# 镜像相关配置#MIRROR_PORT_BASE=50000#REPLICATION_PORT_BASE=41000#MIRROR_REPLICATION_PORT_BASE=51000#declare -a MIRROR_DATA_DIRECTORY=(/tol/data/mi1)DATABASE_NAME=gpdb1MACHINE_LIST_FILE=/home/gpadmin/seg_hosts

初始化命令:

# 默认使用 sdw01 为 standby 节点gpinitsystem -c gpinitsystem_config -a -s sdw01 -S

那么,假设你拥有 5 个节点,分别为 mdw,sdw01,sdw02,sdw03,sdw04,那么每个 segment 节点最多可以有 2 个 segment(当然 1 个 segment 也可以)。共计 8 个 segment 。

在镜像模式下,节点(mdw节点不计在内)与段的关系为: 每个节点上的(最佳)大段数为总节点数的 1/2 ,即:

节点数 每个节点的最大段数 总计最大有效段数
2 1 2
4 2 8
8 4 32
16 8 128
32 16 512

如果不按照上述建议,在镜像模式下,可以采用最大 段节点数 的倍数来调试。

例如:

现有 6个段节点,那么段实例的个数可以使用 6,12,18,24,30...这种方式来扩展,但是段实例过多会导致初始化时,段实例启动失败。

由于段数受到此规则(交叉备份)限制,这一点必须要注意。

注意:

经过实际测试,在6个段节点规模,使用 gpinitsystem 初始化镜像模式最大为6个段实例,超过6后,一直无法通过初始化。

但是,可以采用先使用无镜像模式初始化,在初始化完成后,通过 gpaddmirrors 工具添加镜像节点使得一个节点的最大段实例提高至18个(共6个节点,段实例加镜像段实例总计216个段),这一方法可以借鉴。

在完成镜像节点的添加后,再通过 gpinitstandby 来添加 standby 节点。

转载于:https://my.oschina.net/crooner/blog/914976

你可能感兴趣的文章
小学四则运算 “软件”之初版
查看>>
队列的链式储存
查看>>
JS小功能系列5图片左右移动
查看>>
scrapy之爬虫思考
查看>>
基于PIC单片机的SPWM控制技术
查看>>
复利计算
查看>>
深入理解计算机系统(2.8)---浮点数的舍入,Java中的舍入例子以及浮点数运算(重要)...
查看>>
公安部
查看>>
sharepoint2010 cal
查看>>
一次Zookeeper 扩展之殇
查看>>
linux链接
查看>>
值得一看:一个故事说清楚锐捷网络COffice的作用和优势
查看>>
IT168采访记录
查看>>
深入解析大数据虚拟化的架构(上)- 部署架构
查看>>
喜获Lync MVP感想
查看>>
配套自测连载(五)
查看>>
Windows 8.1 升级到专业版
查看>>
Operations Manager 2007 R2系列之报表服务安装
查看>>
整合apache和tomcat构建Web服务器
查看>>
RAC表决磁盘管理和维护
查看>>