• 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 搭建步骤

    1. 三节点集群
    2. 72, 73, 75 三台机器
    3. 72 作为 admin, 73, 75 作为 segment
    4. 71 别名为 gp1, 72 别名为 gp2, 75 别名为 75
    5. 1. 修改 hosts, 以及 hostname, 然后重启
    6. 192.168.110.72 gp1
    7. 192.168.110.73 gp2
    8. 192.168.110.75 gp3
    9. 2. 将 gp_yum.tar.gz, greenplum-db-6.0.0-rhel7-x86_64.rpm
    10. 按照 installWithDeps.txt 里面的顺序安装
    11. 将软连接 greenplum-db 修改为 gpdb
    12. greenplum_path.sh 增加可执行权限
    13. 上传 hostfile, seg_hosts 到 gpdb 里面
    14. 上传 initgp_config 到 docs/cli_help/gpconfigs/ 目录下, 请注意根据实际的主机情况调整 initgp_config 的 hostname
    15. 3. 新建 master 目录, 和 segment 目录
    16. mkdir -p /data/gpdb/master
    17. mkdir -p /data/gpdb/mdata1
    18. mkdir -p /data/gpdb/pdata1
    19. mkdir -p /data/gpdb/mdata2
    20. mkdir -p /data/gpdb/pdata2
    21. 4. 新建用户 及调整用户权限
    22. groupadd gpadmin
    23. useradd -g gpadmin gpadmin
    24. passwd gpadmin gpadmin
    25. chown -R gpadmin:gpadmin /usr/local/gpdb/
    26. chown -R gpadmin:gpadmin /data/gpdb
    27. 5. 配置内核参数
    28. 配置内核参数,添加如下内容:
    29. vi /etc/sysctl.conf
    30. net.ipv4.ip_forward = 0
    31. net.ipv4.conf.default.accept_source_route = 0
    32. kernel.sysrq = 1
    33. kernel.core_uses_pid = 1
    34. net.ipv4.tcp_syncookies = 1
    35. kernel.msgmnb = 65536
    36. kernel.msgmax = 65536
    37. kernel.sem = 250 64000 100 512
    38. kernel.shmmax = 500000000
    39. kernel.shmmni = 4096
    40. kernel.shmall = 4000000000
    41. kernel.sem = 250 64000 100 512
    42. net.ipv4.tcp_tw_recycle=1
    43. net.ipv4.tcp_max_syn_backlog=4096
    44. net.core.netdev_max_backlog=10000
    45. vm.overcommit_memory=2
    46. net.ipv4.conf.all.arp_filter = 1
    47. 6. 配置 gpadmin 环境变量, vim /home/gpadmin/.bashrc
    48. source /usr/local/gpdb/greenplum_path.sh
    49. export MASTER_DATA_DIRECTORY=/data/gpdb/master/gpseg-1
    50. export LD_LIBRARY_PATH=/usr/local/gpdb/lib
    51. 7. 配置 gp1 到 gp2, gp3 的免密码登录
    52. ssh-keygen
    53. ssh-copy-id -i ~/.ssh/id_rsa.pub gpadmin@192.168.110.72
    54. ssh-copy-id -i ~/.ssh/id_rsa.pub gpadmin@192.168.110.73
    55. ssh-copy-id -i ~/.ssh/id_rsa.pub gpadmin@192.168.110.75
    56. 8. 防火墙开放相关端口
    57. firewall-cmd --add-port=5432/tcp --permanent
    58. firewall-cmd --add-port=6000-6010/tcp --permanent
    59. firewall-cmd --add-port=30000-65535/udp --permanent
    60. firewall-cmd --reload
    61. firewall-cmd --list-all
    62. 9. 在 gp1 所在的主机上面执行 初始化
    63. gpinitsystem -c /usr/local/gpdb/docs/cli_help/gpconfigs/initgp_config -h /usr/local/gpdb/seg_hosts
    64. # 需要重新执行可以删除相关目录, 以及对应的进程号, 锁文件
    65. rm -rf /data/gpdb/master/*
    66. rm -rf /data/gpdb/mdata1/*
    67. rm -rf /data/gpdb/mdata2/*
    68. rm -rf /data/gpdb/pdata1/*
    69. rm -rf /data/gpdb/pdata2/*
    70. 10. 创建用户以及授权
    71. CREATE USER pico WITH PASSWORD 'pico-nf-8100';
    72. GRANT ALL PRIVILEGES ON DATABASE meiya TO pico;

    如果默认的ssh端口不为 22 

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

    但是 太过于复杂, 

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

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

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


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

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

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

    附上上述提及 gp6.0 相关

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

    完 

  • 相关阅读:
    数据库的进阶增删查改操作(一)
    信息系统项目管理师 第四版 第17章 项目干系人管理
    SEO的了解
    vue+element模仿电商商城,前后端分离实现,下单微信扫码支付
    stable diffusion 零基础入门教程
    STlink下载出现st-link usb communication error解决方法
    基于SSM的供电公司安全生产考试系统设计与实现
    NLP神器Transformers入门简单概述
    antv x6 沿边图标循环动画实现
    1 分钟 Serverless 搭建你的首个个人网站
  • 原文地址:https://blog.csdn.net/u011039332/article/details/124786077