资源描述
GreenPlum经验分享
一.介绍
Greenplum数据引擎是为新一代数据仓库和大规模分析处理而建立的软件解决方案。
其最大的特点是不需要高端的硬件支持仍然可以支撑大规模的高性能数据仓库和商业智能查询。在数据仓库、商业智能的应用上,尤其海量数据的处理方面性能极其优异。
二.配置要求与环境设置
2.1 Greenplum数据引擎的基本架构
Greenplum数据引擎由Master主机和Segment主机组成,如下图所示:
Segment主机负责存储和存取用户数据,根据用户数据量可以达到几十台。根据Segment主机CPU的内核数量,数据的存储和存取又分为和内核数量相等的若干Segment。Segment主机之间,以及与Master主机之间通信,通过千兆Ethernet组成的InterConnect连接,同一Segment主机上通信端口被分配给不同的Segment,Segment使用分配的通信子网与其它Segment主机进行通信。
2.2硬件配置要求
Greenplum配置,要求至少有如下配置:
具体到Master主机和Segment主机的配置可以参考Dell,H3C的配置,如下:
1.Segment: Dell R710 :
32G Memory
2*4 core
2*136G Hard Disk
2*1 Gb Nic card
2.Master Host: Dell R710 :
32G Memory
2*4 core
2*136G Hard Disk
2*1 Gb Nic card
3. MD1120 :配置300*24 2.5英寸硬盘
4. 千兆网网络交换机1 台
2.3 系统安装与初始化
2.3.1安装前准备
1)在/etc/sysctl.conf 文件中加入有关共享内存与网络参数配置
kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000000000
kernel.sem = 250 64000 100 512
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_max_syn_backlog=4096
dev_max_backlog=10000
vm.overcommit_memory=2
2)在/etc/security/limits.conf 中加入限制参数
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
3)创建一个包括所有segment机器名的hosts文件:
seg_hosts与包括master与segment的机器名的hosts文件放在/home/gpadmin/下面。
2.3.2Master主机上的安装配置
1安装
1-到greenplum网站下载安装文件,根据服务器与操作系统的类弄选相应的安装包
下载网址:
2- 2-解压安装包: unzip greenplum-db-3.3.5.0-SuSE10-x86_64.zip生greenplum-db-3.3.5.0-SuSE10-x86_64.bin文件
3-运行安转包: /bin/bash greenplum-db-3.3.5.0-SuSE10-x86_64.bin
2)配置
1-创建greenplum用户:
# useradd gpadmin
# passwd gpadmin
# New password: <gpadmin_password>
# Retype new password: <gpadmin_password>
2-创建greenplum组:
# groupadd gpadmin
# chown –R gpadmin:gpadmin gpadmin
3-创建greenplum_db软键接目录: ln -s /usr/local/ greenplum-db-
3.3.5.0 /usr/local/greenplum-db
4-改变greenplum安转目录的owner
# chown -R gpadmin:gpadmin /usr/local/greenplum-db
5-配置环境变量:将 /usr/local/greenplum-db/greenplum_path.sh中的内容追加到greenplum用户gpadmin的.bashrc里.
6-创建master主机上的数据存放目录:
mkdir -p /data/gpadmin/gpdb_master
chown gpadmin:gpadmin /data/gpadmin/gpdb_master
3)在segment上安装配置greenplum数据库
2.3.3安装
1-改变root用户下的SSH keys
# gpssh-exkeys -f /usr/local/host_all(注:会要求输入每个segment的root用户的密码)
2-创建segment主机上的gpadmin用户:
创建用户:# gpssh -f /usr/local/host_seg_all
‘/usr/sbin/useradd gpadmin -d /home/gpadmin -s /bin/bash’
密码修改:# gpssh -f /usr/local/host_seg_all
‘echo "gpadmin_password" | passwd gpadmin –stdin’
3-效验segment下用户被创建:
# gpssh -f host_seg_all ls -l /home
4-改变gpadmin用户下的ssh keys
$ su – gpadmin
$ gpssh-exkeys -f /home/gpadmin/host_seg_all(注:会要求输入gpadmin用户的密码)
1-在root用户下创建安转包:
# gtar -cvf /home/gpadmin/gp.tar /usr/local/ greenplum-db-3.3.5.0
2-从master主机上复制安装包到segment主机
# gpscp -f /home/gpadmin/gp.tar =: /usr/local
3-session同步: # gpssh -f /home/gpadmin/host_
4-在segment主机上解压安装文件
=> gtar –directory /usr/local -xvf /home/gpadmin/gp.tar
5-确认文件被正确安装:
=> ls /usr/local/ greenplum-db-3.3.5.0
6-创建greenplum_db像征目录:
=> ln -s /usr/local/ greenplum-db-3.3.5.0 /usr/local/ greenplum-db
7-改变segment主机上安转目录的owner
=> chown -R gpadmin :gpadmin /usr/local/greenplum-db
8-删除segment上的压缩安装包
=> rm /home/gpadmin/gp.tar
2.3.4配置
改变segment主机上的数据存放目录owner:
=> chown -R gpadmin:gpadmin /home/gpadmin/data1
=> chown -R gpadmin:gpadmin /home/gpadmin/data2
4:退出gpssh
=> exit
5:同步时钟:
$ gpssh -f seg_hosts -v date
$ gpssh -f seg_hosts -v ntpd
2.4系统性能效验
1-运行gpcheckos 来检查刚配的segment机器的操作系统情况
gpcheckos -f /home/gpadmin/seg_hosts
2-运行gpcheckos -h test177.sqa 来检查master机器。
3-计算数据仓库存贮容量,磁盘做RAID10的情况:(U:user data)
计算方法:(raw_capacity * .09) / 2 = formatted_disk_space
如果做segment镜像的话,存贮容量: (2 * U) + U/3 = formatted_disk_space
如果不做segment镜像的话,容量为: U + U/3 = formatted_disk_space
4-硬件性能效验:
gpcheckperf -f /home/gpadmin/hosts -d /home/gpadmin/data1 -d /home/gpadmin/data2 -v
5-网络性能效验:
gpchecknet -f /home/gpadmin/hosts -d /home/gpadmin/data1
gpchecknet -f /home/gpadmin/hosts -r n -d /home/gpadmin/data1(测试最大,最小以及平均值等)
2.3.5初始化系统
1-复制一个配置文件模板
$ cp $GPHOME/docs/cli_help/gp_init_config /home/gpadmin/gp_init_config
2-修改配置参数
注意下面的参数
ARRAY_NAME="Greenplum"
MACHINE_LIST_FILE=/home/gpadmin/seg_hosts
SEG_PREFIX=gp
PORT_BASE=50000
declare -a DATA_DIRECTORY=
(home/gpadmin/data1/gpdb_p1 /home/gpadmin/data1/gpdb_p2
/home/gpadmin/data2/gpdb_p3 /home/gpadmin/data2/gpdb_p4)
MASTER_HOSTNAME=test177.sqa
MASTER_DIRECTORY=/home/gpadmin/gpdb_p1
MASTER_PORT=5432
3-运行配置文件初始化greenplum数据库
1:$ gpinitsystem -c /home/gpadmin/gp_init_config
如果有备份master服务器则
$ gpinitsystem -c /home/gpadmin/gp_init_config -s standby_master_hostname
4-将MASTER_DATA_DIRECTORY加入环境中
修改gpadmin用户的.bash_profile以及/etc/profile,加入
MASTER_DATA_DIRECTORY=/data/gpdb_master/gp-1
export MASTER_DATA_DIRECTORY
三、Greenplum的起停操作
常用的三条命令:
gpstart——启动Greenplum;
gpstop——停止Greenplum;
gpstate——检查Greenplum状态。
Greenplum所有工作完成后,可以用psql建立数据库表等操作,来检查Greenplum的工作情况。
四.Greenplum测试
参照以下例子,进行系统加载和查询测试。
4.1数据加载测试
测试Greenplum数据库引擎从文本文件加载到数据库的加载性能和加载特性
4.1.1外部表建立语句
create external table sales_ext (
sales_date DATE,
store_id INT,
product_id INT,
quantity INT,
Sales_month INT)
location (’gpfdist://mdw-2:8089/sales.txt’)
FORMAT ’text’ (delimiter ’,’ )
encoding ’gb18030’
LOG ERRORS INTO error_data SEGMENT REJECT LIMIT 10 ROWS;
4.1.2 Sales表建立语句
create table sales (
sales_date DATE,
store_id INT,
product_id INT,
quantity INT,
Sales_month INT)
DISTRIBUTED RANDOMLY;
4.1.3 Sales数据加载测试
加载语句:
INSERT INTO sales SELECT * FROM sales_ext;
4.2 Greenplum 性能测试
涉及到SQL执行性能,SQL函数(存储过程)性能,数据库新技术性能(按列数据库、数据库透明压缩)等
4.2.1大表统计与大表关联
本项测试的目的是通过执行SQL查询,检验Greenplum数据库处理查询的速度
测试方法:抽取多种不同SQL Statement在Greenplum数据库上进行测试
4.2.2 列存储
本项测试的目的是:对按列存储并压缩数据库表,通过执行SQL查询,检验Greenplum数据库的按列存储并压缩数据库表的处理查询的速度
测试方法:抽取多种不同SQL Statement在Greenplum数据库上进行测试
4.2.3 SQL函数(存储过程)性能测试
本项测试的目的是通过SQL函数执行,检验Greenplum数据库处理SQL函数的速度。
测试方法:
本次测试,抽取了生产应用中运行时间较长的 SQL Statement(包括)。GP工程师对函数脚本进行改造迁移后在Greenplum数据库上进行测试。
4.2.4 并发性测试
在后台分别提交不同数量的并发查询,以验证Greenplum数据库是否能满足多用户并发查询需求。
4.2.5工具连通性测试
测试方法:在建立定义新的报表,通过JDBC/ODBC与Greenplum相连,实现报表的查询。
实现了与Cognos,DataStage连通性测试,本项目为功能测试,证明Greenplum与ETL工具之间的兼容性。
4.2.6数据库高可用性测试
通过KVM,人工关闭Segment2的所有网卡。Greenplum数据库仍然继续运行正常!
结论:Greenplum节点之间具备高可用性,任何一个节点发生故障,其他节点都可以接管其任务。
五.Performance Monitor
Greenplum Performance Monitor的安装包括以下几步:
l Greenplum Performance Monitor的安装准备
一、建立Monitor所需的超级角色
二、设定postgresql.conf中和Monitor有关的参数
l Greenplum Performance Monitor的安装
一、在Master主机上安装
二、在Segment主机上安装
三、建立Greenplum Performance Monitor数据库
5.1Greenplum Performance Monitor的安装准备
5.1.1建立Monitor所需的超级角色
l 用psql新超级用户gpmon的角色:
$ psql template1 -c CREATE ROLE gpmon WITH SUPERUSER CREATEDB LOGIN;
l 授予gpmon访问权限
修改$MASTER_DATA_DIRECTORY/pg_hba.conf,为gpmon用户授权,使其能够连接数据库,例如,下列授权允许gpmon从本地或者10.0.2.1地址访问数据库:
local gpperfmon gpmon trust
host gpperfmon gpmon 10.0.2.1/32 trust
l 用下列命令使修改立即生效:
$ gpstop -u
5.1.2设定postgresql.conf中和Monitor有关的参数
l 打开$MASTER_DATA_DIRECTORY/postgresql.conf文件;
l 在文件末尾增加以下内容,其中的端口8888是缺省值,可以根据网络规划变更:
#--------------------------------
# GPPERFMON OPTIONS
#--------------------------------
gp_enable_gpperfmon=on
gpperfmon_port=8888
l 在文件的EXTERNAL TABLES部分,确认以下参数未被注释掉,并设定为“on”:
gp_external_enable_exec=on
l 存储修改的文件
l 用下列命令使postgresql.conf的修改立即生效:
$ gpstop -u
5.2Greenplum Performance Monitor的安装
5.2.1在Master主机上安装
l 下载并解压缩greenplum-perfmon-2.0.0.0-PLATFORM.zip;
l 运行:
# /bin/bash greenplum-perfmon-2.0.0.0-PLATFORM.bin
l 按照提示进行安装;
l 如果是用root安装,修改软件目录的Owner:
# chown -R gpadmin /usr/local/greenplum-perfmon-2.0.0.0
l 通过包含gpperfmon_path.sh设置环境变量
在gpadmin的原文件(profile)中,增加以下一行:
source /usr/local/greenplum-perfmon-2.0.0.0/gpperfmon_path.sh
l 执行以下命令使环境变量生效:
$ source ~/.bashrc
5.2.2在Segment主机上安装
5.2.2.1方法一:逐台安装
采用和Master上相同的方法,逐台安装。
注意:不需要增加最后设置环境变量部分。
5.2.2.2方法二:通过Master统一安装三
l 在Master主机上,对安装成功的Greenplum Performance Monitor软件进行打包,例如执行:
# su -
# cd /usr/local
# gtar -cvf /usr/local/perfmon.tar greenplum-perfmon-2.0.0.0
l 将压缩包复制到各个Segment主机
l 需要建立包括所有Segment主机名称的文件,用gpscp进行复制。例如:
# source /usr/local/greenplum-db/greenplum_path.sh
# gpscp -f seg_hosts_file /usr/local/perfmon.tar =:/usr/local
l 用gpssh的交互模式,进行安装,例如:
# gpssh -f single_seg_hosts_file
l 在gpssh命令行,解压压缩包,必须将软件解压到和Master主机相同的目录,例如:
=> gtar --directory /usr/local -xvf /usr/local/perfmon.tar
l 确认安装正确,例如:
=> ls /usr/local/greenplum-perfmon-2.0.0.0
l 修改这一目录的所有者(Owner),例如:
=> chown -R gpadmin /usr/local/greenplum-perfmon-2.0.0.0
=> chgrp -R gpadmin /usr/local/greenplum-perfmon-2.0.0.0
l 清理掉Segment主机上的压缩包,例如:
=> rm -f /usr/local/perfmon.tar
l 退出gpssh:
=> exit
5.2.2.3建立Greenplum Performance Monitor数据库
l 以gpadmin超级用户角色登录Greenplum;
l 在Greenplum数据库运行时,以—setup选项运行gpperfmon工具,例如:
$ gpperfmon --setup
l 按照提示,输入Y来建立并确认Greenplum Performance Monitor数据库;
l 设定Quantum的值(性能数据收集时间间隔),缺省为15秒;
l 设定查询运行时间的最小值,只有超过这一时间值的才被记录到监控数据库,缺省为60秒;
l 设定详细查询运行时间的最小值,只有超过这一时间的查询才会有此设置,缺省值为何查询运行最小时间相同;
l 录入Greenplum想能监控日志文件的位置,回车选择缺省:$MASTER_DATA_DIRECTORY/gpperfmon/logs;
l 输入Monitor控制台的Web服务器端口,缺省为28080;
l (可选项)选择Y或者N,设置Monitor控制台的SSL连接, 如果选择Y将提示录入以下内容,例如:
Country Name (2 letter code) [GB]:US
State or Province Name (full name) [Berkshire]:California
Locality Name (eg, city) [Newbury]:San Mateo
Organization Name (eg, company) [My Company Ltd]:Greenplum
Organizational Unit Name (eg, section) []:Engineering
Common Name (eg, your name or your server’s hostname) []:mdw1
Email Address []:gpadmin@
展开阅读全文