Greenplum集群的使用
Greenplum的集群
简介:
Greenplum数据引擎是为新一代数据仓库和大规模分析处理而建立的软件解决方案,其大的特点是不需要高端的硬件支持仍然可以支撑大规模的高性能数据仓库和商业智能查 询。在数据仓库、商业智能的应用上,尤其在海量数据的处理方面Greenplum表现出极其优 异的性能。
传统数据库侧重交易处理,关注的是多用户的同时的双向操作,在保障即时性的要求 下,系统通过内存来处理数据的分配、读写等操作,存在10瓶颈。而分析型数据库是以实 时多维分析技术作为基础,对数据进行多角度的模拟和归纳,从而得出数据中所包含的信息 和知识。Greenplum虽然是关系型数据库产品,但是它具有查询速度快、数据装载速度快、 批量DML处理快的主要特点,而且性能可以随着硬件的添加呈线性增加,拥有非常良好的 可扩展性。因此,Greenplum主要适用于面向分析的应用,比如构建企业级ODS/EDW.数 据集市等。
在国内,笔者所在公司——阿里巴巴(中国)网络技术有限公司,从2008年开始引入 Greenplum,将原有的Oracle RAC迁移到Greenplum _t,作为数据仓库的计算中心,其中一个应用就是通过分析用户的网络点击日志进行产品的关联分析。支付宝在2008年也引入了 Greenplum数据库作为数据中心。国内还有很多银行也引入了 Greenplum作为基础的数据平台,如港龙航空、东方航空、北京银行、深发展银行、中信银行信用卡中心等。在TB级的数据仓库的OLAP应用 中Greenplum在易用性和性能方面有着很大的优势。
基本信息:
产品:VMware® Workstation 12 Pro 版本:12.1.0 build-3272444
环境说明:
[root@master ~]# cat /etc/centos-release
CentOS release 6.8 (Final)
Greenplum 版本:7.8
内存:4GB 处理器:4 硬盘:50GB 网络设配器:NAT
正文:
搭建记得关闭防火墙、设置时钟同步。
2. 环境准备
2.0 环境准备
2.0.1 修改主机名
vi /etc/hostname
gpseg0
2.0.2 修改hosts
vim /etc/hosts
192.168.128.130 gpseg0
2.1 环境准备
按上面步骤准备4台机器:
192.168.128.130 gpseg0
192.168.128.131 gpseg1
192.168.128.132 gpseg2
192.168.128.133 gpseg3
2.2 修改系统参数
2.2.1 /etc/sysctl.conf
vim /etc/sysctl.conf
kernel.shmall = _PHYS_PAGES / 2 # See Shared Memory Pages
kernel.shmall = 4000000000
kernel.shmmax = 500000000
kernel.shmmni = 4096
vm.overcommit_memory = 2 # See Segment Host Memory
vm.overcommit_ratio = 95 # See Segment Host Memory
net.ipv4.ip_local_port_range = 10000 65535 # See Port Settings
kernel.sem = 500 2048000 200 40960 //2
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.default.accept_source_route = 0
//net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.all.arp_filter = 1
//net.ipv4.ip_local_port_range = 1025 65535
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.swappiness = 10
vm.zone_reclaim_mode = 0
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
vm.dirty_background_ratio = 0 # See System Memory
vm.dirty_ratio = 0
vm.dirty_background_bytes = 1610612736
vm.dirty_bytes = 4294967296
查看配置:sysctl -p
2.2.2 /etc/security/limits.conf
vim /etc/security/limits.conf
* soft nofile 524288
* hard nofile 524288
* soft nproc 131072
* hard nproc 131072
2.3 所需依赖安装
2.3.1 把RPM包上传至所有的节点
2.3.2 测试安装,找出所需要的依赖(可略过)
rpm -ivh greenplum-db-6.3.0-rhel7-x86_64.rpm
结果如下:
error: Failed dependencies:
apr is needed by greenplum-db-6.3.0-1.el7.x86_64
apr-util is needed by greenplum-db-6.3.0-1.el7.x86_64
bzip2 is needed by greenplum-db-6.3.0-1.el7.x86_64
krb5-devel is needed by greenplum-db-6.3.0-1.el7.x86_64
libevent is needed by greenplum-db-6.3.0-1.el7.x86_64
libyaml is needed by greenplum-db-6.3.0-1.el7.x86_64
rsync is needed by greenplum-db-6.3.0-1.el7.x86_64
zip is needed by greenplum-db-6.3.0-1.el7.x86_64
2.3.4 在所有节点安装依赖
yum install -y apr apr-util bzip2 krb5-devel libent libml rsync zip
2.3.5 在所有节点安装greenplum的RPM包
rpm -ivh greenplum-db-6.3.0-rhel7-x86_64.rpm
2.3.5 默认的安装路径
rpm 默认安装在: /usr/local/greenplum-db --软连接
/usr/local/greenplum-db-6.3.0 --真实路径
2.4 新建用户
2.4.1 新建用户: gpadmin
greenplum的管理员用户默认为: gpadmin,在每一台机器上新建gpadmin用户
useradd gpadmin ## 新建用户
passwd gpadmin ## 修改密码 (我这里设置密码为: qwe123)
useradd gpadmin ; echo "***123" | passwd --stdin gpadmin
2.4.2 修改greenplum文件夹权限
修改我们刚刚通过RPM安装的Greenplum文件夹的权限,把拥有者修改为gpadmin
chown -R gpadmin:gpadmin /usr/local/greenplum-db*
2.4.3 修改gpadmin环境变量
vim /home/gpadmin/.bash_profile
export GPHOME=/usr/local/greenplum-db
source $GPHOME/greenplum_path.sh
#.# 准备目录
#.#.1 在所有节点新建目录,并更改拥有者为gpadmin
mkdir -p /data1
mkdir -p /data1/master # master和standby-master的数据目录,建议和data1平级
chown -R gpadmin:gpadmin /data1
# 这里新建了1个目录,作为数据存放目录
#.# 架构说明
# 这里的实验环境为4台节点,准备做一个高可用集群,一台master和一台standby-master;
# 这里所有的节点都会作为计算节点,存储数据;同时seg0和seg2作为两台master主节点,提供对外服务;
# 真实情况下,建议master节点和segment节点配置一致,并且建议master节点不作为计算存储节点来使用
★3 安装 (gpadmin用户,master节点)
以下步骤,均使用gpadmin用户操作
★3.0 免密配置
在集群环境中,master节点,会用gpadmin用户登录到segment节点上。所以,master节点要和segment之间配置免密登录。
3.0.1 在所有节点上生成公钥
ssh-keygen -t rsa
3.0.2 拷贝公钥至master节点
在每台segment节点下,把自己的公钥拷贝给master节点:
ssh-copy-id -i gpseg0
ssh-copy-id -i gpseg1
★3.1 配置文件准
mkdir ~/gpconfigs # 在master节点新建文件夹
3.1.1 拷贝配置文件模板
cp /usr/local/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_config ~/gpconfigs
3.1.2 新建集群节点列表
vim ~/gpconfigs/hostfile_exkeys
gpseg0
gpseg1
3.1.3 ssh测试
gpssh -f ~/gpconfigs/hostfile_exkeys -e ‘ls -l /usr/local/greenplum-db’
3.1.4 新建节点数据存放目录
主数据目录:
gpssh -f ~/gpconfigs/hostfile_exkeys -e ‘mkdir -p /data1/primary’
镜像备份目录:
gpssh -f ~/gpconfigs/hostfile_exkeys -e ‘mkdir -p /data1/mirror’
3.1.5 修改配置文件
vim ~/gpconfigs/gpinitsystem_config
ARRAY_NAME=“Greenplum Data Platform”
SEG_PREFIX=gpseg # 前缀默认值
PORT_BASE=6000 # master默认端口
declare -a DATA_DIRECTORY=(/data1/primary /data1/primary) # 数据存放目录
MASTER_HOSTNAME=gpseg0 # 主节点名称
MASTER_DIRECTORY=/data/master
MASTER_PORT=5432
TRUSTED SHELL=ssh
CHECK_POINT_SEGMENTS=8
ENCODING=UNICODE
# 以下为mirror目录, 如果集群不需要镜像备份可以不打开
MIRROR_PORT_BASE=7000
declare -a MIRROR_DATA_DIRECTORY=(/data1/mirror /data1/mirror)
3.2 数据库初始化
3.2.1 初始化
-1- 初始化
不带standby初始化命令:
gpinitsystem -c ~/gpconfigs/gpinitsystem_config -h ~/gpconfigs/hostfile_exkeys
本文来源:https://blog.csdn.net/Duncani/article/details/113039953
相关文章