03 gp 集群搭建

Posted 蓝风9

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了03 gp 集群搭建相关的知识,希望对你有一定的参考价值。

前言

呵呵 最近有一系列环境搭建的相关需求

记录一下

gp 三个节点 : 192.168.110.72, 192.168.110.73, 192.168.110.75

72 为 master, 73 为 slave01, 75 为 slave02

三台机器都做了 trusted shell

gp 单节点 docker 搭建

参照 Docker Hub

gp 搭建步骤


三节点集群 
	72, 73, 75 三台机器 
	72 作为 admin, 73, 75 作为 segment
	71 别名为 gp1, 72 别名为 gp2, 75 别名为 75 


1. 修改 hosts, 以及 hostname, 然后重启 
	192.168.110.72 gp1
	192.168.110.73 gp2
	192.168.110.75 gp3

2. 将 gp_yum.tar.gz, greenplum-db-6.0.0-rhel7-x86_64.rpm 
	按照 installWithDeps.txt 里面的顺序安装 
	将软连接 greenplum-db 修改为 gpdb 
	greenplum_path.sh 增加可执行权限 
	上传 hostfile, seg_hosts 到 gpdb 里面 
	上传 initgp_config 到 docs/cli_help/gpconfigs/ 目录下, 请注意根据实际的主机情况调整 initgp_config 的 hostname

3. 新建 master 目录, 和 segment 目录	
	mkdir -p /data/gpdb/master
	mkdir -p /data/gpdb/mdata1
	mkdir -p /data/gpdb/pdata1
	mkdir -p /data/gpdb/mdata2
	mkdir -p /data/gpdb/pdata2

4. 新建用户 及调整用户权限 
	groupadd gpadmin
	useradd -g gpadmin gpadmin
	passwd gpadmin gpadmin
	chown -R gpadmin:gpadmin /usr/local/gpdb/
	chown -R gpadmin:gpadmin /data/gpdb

5. 配置内核参数
  配置内核参数,添加如下内容:
  vi /etc/sysctl.conf

  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
  net.ipv4.conf.all.arp_filter = 1

6. 配置 gpadmin 环境变量, vim /home/gpadmin/.bashrc
	source /usr/local/gpdb/greenplum_path.sh
	export MASTER_DATA_DIRECTORY=/data/gpdb/master/gpseg-1
	export LD_LIBRARY_PATH=/usr/local/gpdb/lib

7. 配置 gp1 到 gp2, gp3 的免密码登录
	ssh-keygen
	ssh-copy-id -i ~/.ssh/id_rsa.pub gpadmin@192.168.110.72
	ssh-copy-id -i ~/.ssh/id_rsa.pub gpadmin@192.168.110.73
	ssh-copy-id -i ~/.ssh/id_rsa.pub gpadmin@192.168.110.75

8. 防火墙开放相关端口
	firewall-cmd --add-port=5432/tcp --permanent 
	firewall-cmd --add-port=6000-6010/tcp --permanent 
	firewall-cmd --add-port=30000-65535/udp --permanent 
	firewall-cmd --reload 
	firewall-cmd --list-all

9. 在 gp1 所在的主机上面执行 初始化
	gpinitsystem -c /usr/local/gpdb/docs/cli_help/gpconfigs/initgp_config -h /usr/local/gpdb/seg_hosts

	# 需要重新执行可以删除相关目录, 以及对应的进程号, 锁文件
	rm -rf /data/gpdb/master/*
	rm -rf /data/gpdb/mdata1/*
	rm -rf /data/gpdb/mdata2/*
	rm -rf /data/gpdb/pdata1/*
	rm -rf /data/gpdb/pdata2/*

10. 创建用户以及授权
	CREATE USER pico WITH PASSWORD 'pico-nf-8100';
	GRANT ALL PRIVILEGES ON DATABASE meiya TO pico;

如果默认的ssh端口不为 22 

这是我们部署的过程中遇到的一个问题, 尝试过修改 gpinitsystem, gpstart 脚本来解决问题

但是 太过于复杂, 

最终的处理方式是 修改 initgp_config 中的 TRUSTED_SHELL 的配置, 原来为 "ssh", 更新为 "ssh -p 3333"

以及至少会有如下文件, 如下地方的更新 

[root@gp1 gpdb]# grep -R 55566 *
bin/gpssh-exkeys:        args = ['ssh', '-p 55566', self.m_host, '-o', 'BatchMode=yes', '-o', 'StrictHostKeyChecking=yes', '-n',
bin/gpssh-exkeys:            args = ['ssh -p 55566', self.m_host, '-o', 'BatchMode=yes', '-o', 'StrictHostKeyChecking=yes',
bin/gpssh-exkeys:    cmd = 'ssh -p 55566 -o "BatchMode=yes" -o "StrictHostKeyChecking=no" %s true 2>%s' % (hostname, errfile)
bin/gpssh-exkeys:        cmd = ['ssh -p 55566', remoteHost.host(), '-o', 'BatchMode=yes', '-o', 'StrictHostKeyChecking=yes',  'true']
bin/gpssh-exkeys:            cmd = ('scp -P 55566 -q -o "BatchMode yes" -o "NumberOfPasswordPrompts 0" ' +
bin/gpssh-exkeys:                cmd = ('scp -P 55566 -q -o "BatchMode yes" -o "NumberOfPasswordPrompts 0" ' +
bin/lib/gp_bash_functions.sh:if [ x"$TRUSTED_SHELL" = x"" ]; then TRUSTED_SHELL="$SSH -p 55566"; fi
bin/lib/gp_bash_functions.sh:if [ x"$TRUSTED_COPY" = x"" ]; then TRUSTED_COPY="$SCP -P 55566"; fi
docs/cli_help/gpconfigs/initgp_config:TRUSTED_SHELL="ssh -p 55566"
Binary file lib/python/gppylib/commands/base.pyc matches
lib/python/gppylib/commands/base.py:        cmd.cmdStr = "ssh -p 55566 -o StrictHostKeyChecking=no -o ServerAliveInterval=60 " \\


主机名已经调整, 但是 gpinitsystem, gpstart 的过程中还是使用的 localhost.domain

这个需要进入到 gpMaster 的 template1 数据库 查询节点信息, 然后调整 节点 数据

进入postgre        PGOPTIONS="-c gp_session_role=utility" psql -d postgres
 数据库查看     \\l
 数据分布          select * from gp_segment_configuration order by dbid;
报错   ERROR:  permission denied: "gp_segment_configuration" is a system catalog
  set allow_system_table_mods='TRUE';

附上上述提及 gp6.0 相关

greenplum6.0安装相关-C++文档类资源-CSDN下载

完 

以上是关于03 gp 集群搭建的主要内容,如果未能解决你的问题,请参考以下文章

greenplum 集群新增 standby节点

linux搭建集群前的优化

Redis-03-集群搭建

Hadoop_03_Hadoop分布式集群搭建

03-交互与搭建集群

zk 三个节点的情况下,挂掉节点会发生啥?