零经验 Greenplum 简易安装
(2012-09-11 20:57:30)
转 载 ▼
标签:
分类: 文档
greenplum
安装
公司没通知我参加 Greenplum 培训前,我压根就不知道这是个神马东东,后来才知道是个数
据库,我算是彻底孤陋寡闻凹凸了。本来培训培训时间是周四周五两天,结果周三上线熬了
一通宵,回家洗了个澡拿了几件衣服就和同事打飞的去帝都参加培训去了,所以说搞通信支
撑这行真是不要命。
周四上午的内容是简介和安装,老师讲的时候我还在高空中补觉了,等我们赶到培训教室时,
就剩下尾巴了。中午的时候拷了老师的资料,后面的课基本上都是看大屏幕听个大概,硬撑
着没睡着,看来咱还年轻,禁得熬。
回来后看资料慢慢折腾,总算是安装成功了。为啥说是零经验了,因为 Greenplum 是在 VM
上的 Linux 上安装,都不太熟悉,中间碰到好多问题都折腾了好久。
安装 VM 和 Linux
下载 VMware-Workstation 和 Linux(greenplum 需要 Red Hat Enterprise Linux 5.5
以
上,必须为 x86_64 平台)并进行安装。
安装完后安装 telnet-server,这样就可以用 SecureCRT 访问了,主机 IP 可以通过 ifconfig
获取。
rpm -ivh xinetd-2.3.14-10.el5.i386.rpm
rpm -ivh telnet-server-0.17-39.el5.i386.rpm
修改配置
vi /etc/xinetd.d/telnet
service telnet {
disable = yes
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
}
重启服务,并关闭防火墙(system->Administration->Security Level and Firewall,把
ftp,telnet 选上)
service xinetd restart
准备好后,开始安装 greenplum
修改系统配置。
vi /etc/sysctl.conf
#greenplum
net.ipv4.ip_forward = 0
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 1
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.sem = 250 64000 100 512
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
net.core.netdev_max_backlog=10000
vm.overcommit_memory=2
vi /etc/security/limits.conf
#greenplum
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
增加用户组和用户
groupadd -g 3030 gpadmin
groupadd -g 3040 gpmon
useradd -u 3030 -g gpadmin -d /home/gpadmin -s /bin/bash -m gpadmin passwd gpadmin
useradd -u 3040 -g gpmon -d /home/gpmon -s /bin/bash -m gpmon passwd gpmon
增加网络配置 修改主机名
vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
#HOSTNAME=localhost.localdomain
#greenplum
HOSTNAME=mdw
用一个网卡绑定多个 ip 地址,模拟多个节点,在/etc/sysconfig/network-scripts 下新增
ifcfg-eth0:0 ifcfg-eth0:1
ifcfg-eth0:2 ifcfg-eth0:3 文件,内容如下。这里指配
置了 2 个节点的 ip,因为我配置 4 个节点时,后面操作就报“Cannot allocate memory”
了,VM 调整到 2M 也一样。
#ifcfg-eth0:0
DEVICE=eth0:0
BOOTPROTO=static
IPADDR=192.168.0.254
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
#ifcfg-eth0:1
DEVICE=eth0:1
BOOTPROTO=static
IPADDR=192.168.0.253
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
#ifcfg-eth0:2
DEVICE=eth0:2
BOOTPROTO=static
IPADDR=192.168.0.1
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
#ifcfg-eth0:3
DEVICE=eth0:3
BOOTPROTO=static
IPADDR=192.168.0.2
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
修改 hosts 文件,这里要和节点的 ip 保持一致。
vi /etc/hosts
#greenplum
127.0.0.1 localhost
10.x.x.x mdw-ext
10.y.y.y smdw-ext
192.168.0.254 mdw
192.168.0.253 smdw
192.168.0.1 sdw1
192.168.0.2 sdw2
安装 greenplum 软件
在 mdw 节点上,将 greenplum-db-4.2.2.0-build-5-RHEL5-x86_64.zip 解开,以 root 用户
执行得到的.bin 文件。按照提示进行安装。
unzip greenplum-db-4.2.2.0-build-6-RHEL5-i386.zip
./greenplum-db-4.2.2.0-build-6-RHEL5-i386.bin
准备 allnodes.txt 文件
sdw1
sdw2
smdw
Master 节点上的安装和准备工作
以 root 身份,执行以下命令
. /usr/local/greenplum-db-4.2.2.0/greenplum_path.sh
gpssh-exkeys -f allnodes.txt
创建目录,用于存放数据库文件
mkdir /data/
chown gpadmin:gpadmin /data
mkdir /data/master
chown gpadmin:gpadmin /data/master
修改 gpadmin 用户.bashrc 文件
[gpadmin@mdw ~]$ vi .bashrc
#greenplum
. /usr/local/greenplum-db-4.2.2.0/greenplum_path.sh
Segment 节点上的安装
. /usr/local/greenplum-db-4.2.2.0/greenplum_path.sh
gpseginstall -f allnodes.txt
. /usr/local/greenplum-db-4.2.2.0/greenplum_path.sh
gpssh -f nodes.txt mkdir /data/d1 /data/d2
gpssh -f nodes.txt mkdir /data/m1 /data/m2
gpssh -f nodes.txt chown gpadmin.gpadmin /data/d1 /data/d2
gpssh -f nodes.txt chown gpadmin.gpadmin /data/m1 /data/m2
数据库初始化
创建 gpinitsystem_config 文件
vi gpinitsystem_config
ARRAY_NAME="Greenplum"
SEG_PREFIX=gpseg
PORT_BASE=40000
declare -a DATA_DIRECTORY=(/data/d1 /data/d2)
MASTER_HOSTNAME=mdw
MASTER_DIRECTORY=/data/master
MASTER_PORT=5432
TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=256
ENCODING=UNICODE
MIRROR_PORT_BASE=50000
REPLICATION_PORT_BASE=41000
MIRROR_REPLICATION_PORT_BASE=51000
declare -a MIRROR_DATA_DIRECTORY=(/data/m1 /data/m2)
创建节点描述文件 nodes.txt
vi nodes.txt
sdw1
sdw2
执行命令
gpinitsystem -c gpinitsystem_config -h nodes.txt
修改 gpadmin 用户.bashrc 文件
vi .bashrc
#greenplum
export gnbMASTER_DATA_DIRECTORY=/data/master/gpseg-1
调整连接控制参数
vi $MASTER_DATA_DIRECTORY/pg_hba.conf
host all all 0/0 md5
启停 greenplum 命令
gpstop -a
gpstart -a
用 psql 尝试连接,参考数据库情况
[root@mdw gp]# su - gpadmin
[gpadmin@mdw ~]$ psql -d postgres
psql (8.2.15)
Type "help" for help.
postgres=# select datname,datdba,encoding,datacl from pg_database;
datname | datdba | encoding | datacl
-----------+--------+----------+----------------------------------
postgres | 10 | 6 |
template1 | 10 | 6 | {=c/gpadmin,gpadmin=CTc/gpadmin}
template0 | 10 | 6 | {=c/gpadmin,gpadmin=CTc/gpadmin}
(3 rows)