greenplum安装步骤

一.安装前的预处理
1./etc/sysctl.conf
kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000000000
kernel.sem = 250 512000 100 2048
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 = 0
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.overcommit_memory = 2
sysctl -p 使修改生效
2./etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

3.(建议)xfs为磁盘或者lvm格式
rw,noatime,inode64,allocsize=16m
/dev/data /data xfs nodev,noatime,inode64,allocsize=16m 0 0

4.The Linux disk I/O scheduler
# echo schedulername > /sys/block/devname/queue/scheduler
或者修改/boot/grub/grub.conf,增加
elevator=deadline

5.Each disk device file should have a read-ahead (blockdev) value of 16384.
查看和设置命令
# /sbin/blockdev –getra devname
# /sbin/blockdev –setra bytesdevname
例如:
# /sbin/blockdev –setra 16384 /dev/sdb

6.修改/etc/hosts文件,确保含有集群中的每个节点

7.Disable Transparent Huge Pages (THP)
通过修改/boot/grub/grub.conf,添加
kernel /vmlinuz-2.6.18-274.3.1.el5 ro root=LABEL=/
elevator=deadline crashkernel=128M@16M quiet console=tty1
console=ttyS1,115200 panic=30 transparent_hugepage=never
initrd /initrd-2.6.18-274.3.1.el5.img

二.安装配置
1.下载,解压,运行
unzip greenplum-db-4.3.x.x-PLATFORM.zip
/bin/bash greenplum-db-4.3.x.x-PLATFORM.bin
2.配置
建立节点间的信任关系
su –
# source /usr/local/greenplum-db/greenplum_path.sh
gpssh-exkeys -f /tmp/hostfile_exkeys
创建hostfile_exkeys文件,内容大概如下
mdw
sdw1
sdw2
sdw3
smdw (如果有第二主节点则添加此项目,我安装的没有第二主节点)
mdw表示主节点,smdw表示第二主节点,sdw1表示从节点1,sdw2表示从节点2,sdw3表示从节点3
如果一个节点有多个网口,在该节点hostname后面,添加smdw-2
后面的-1,-2分别表示网络接口,如果只有一个网络接口,则不用写
执行安装
gpseginstall -f hostfile_exkeys -u gpadmin -p P@$$word
这里会报错
The authenticity of host ‘cloudwave2 (192.168.0.15)’ can’t be established.输入密码,yes等后会卡主不动
需要在主节点上手工执行
ssh-ketgen
ssh-copy-id mdw1
ssh-copy-id sdw1
ssh-copy-id sdw2
ssh-copy-id sdw3

3.配置oracle函数,暂略
安装greenplum db扩展,暂略

4.建立数据目录

主节点的:
# mkdir /data/master
# chown gpadmin /data/master
如果有第二主节点
# source /usr/local/greenplum-db/greenplum_path.sh
# gpssh -h smdw -e ‘mkdir /data/master’
# gpssh -h smdw -e ‘chown gpadmin /data/master’

从节点的:
On the master host,切换到root用户
# su
创建hostfile_gpssh_segonly文件,内容为从节点hostname
sdw1
sdw2
sdw3
# source /usr/local/greenplum-db/greenplum_path.sh
# gpssh -f hostfile_gpssh_segonly -e ‘mkdir /data/primary’
# gpssh -f hostfile_gpssh_segonly -e ‘mkdir /data/mirror’
# gpssh -f hostfile_gpssh_segonly -e ‘chown gpadmin /data/primary’
# gpssh -f hostfile_gpssh_segonly -e ‘chown gpadmin /data/mirror’

5.同步时钟
修改/etc/ntp.conf
配置
server 10.6.220.20 (该ip为局域网中时间服务器的地址)
#设置默认策略为允许任何主机进行时间同步
restrict default ignore

如果该文件不存在,则yum -y install ntp
然后
gpssh -f host_file -e ‘service ntpd restart’ (批量重启,hostfile含有所有host的hostname)
gpssh -f hostfile_gpssh_segonly -v -e ‘ntpd'(批量同步时间)
手工同步时间ntpdate -u 192.168.0.22
查看时钟是否同步ntpstat
检查集群时钟是否相同
gpssh -f /tmp/hostfile_exkeys -e “date -R”

定时同步配置
echo “00 */1 * * * root /usr/sbin/ntpdate 192.168.0.240;/sbin/hwclock -w”>>/etc/crontab

6.测试安装是否正确
gpcheck -f hostfile_gpcheck -m mdw
验证系统性能等,暂略
本地化设置,暂略

7.修改主节点的/home/gpadmin/.bashrc,
source /usr/local/greenplum-db/greenplum_path.sh
GPHOME=/usr/local/greenplum-db
export GPHOME
PATH=$GPHOME/bin:$PATH
export PATH
MASTER_DATA_DIRECTORY=/data/master/gpseg-1
export MASTER_DATA_DIRECTORY

这一项配置了可能会有问题
LD_LIBRARY_PATH=$GPHOME/lib
export LD_LIBRARY_PATH

8.创建hostfile_gpinitsystem文件
sdw1
sdw2
sdw3
sdw4
拷贝gpinitsystem_config文件并修改,按照提示修改就可以
$ su – gpadmin
# source /usr/local/greenplum-db/greenplum_path.sh
$ cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config /home/gpadmin/gpconfigs/gpinitsystem_config
我修改了这里
declare -a DATA_DIRECTORY=(/data/primary)
如果hostname修了的话,注意修改这里
MASTER_HOSTNAME=mdw

然后初始化数据库
$ gpinitsystem -c gpconfigs/gpinitsystem_config -h gpconfigs/hostfile_gpinitsystem

vi /data/master/gpseg-1/pg_hba.conf
增加
host all all 192.168.0.0/16 md5
gpstop -u重启服务器
copy 表名 from ‘文件’ with delimiter ‘|’;

createdb tpch100 -E utf-8 #建库
psql -d tpch100 #进入数据库建立用户
alter role gpadmin with password ‘gpadmin’ #设置密码

设置外部表
gpfdist -d /usr/local/cloudwave_client/bin/ -p 8888 > gpfdisk.log 2>&1 &