当前位置: 首页 > article >正文

CentOS7.9下Greenplum6.19集群搭建

在 CentOS 7.9 上搭建 Greenplum 6.19 集群是一个多步骤的过程,涉及系统配置、Greenplum 安装、集群初始化等。以下是详细的步骤指南。


1. 环境准备

1.1 系统要求
  • 操作系统:CentOS 7.9

  • 内存:至少 16 GB(建议 32 GB 或更多)

  • 磁盘空间:至少 50 GB(根据数据量调整)

  • 网络:节点之间网络互通,建议使用千兆或更高带宽。

1.2 节点规划
  • Master 节点:1 台(负责协调和管理集群)

  • Segment 节点:至少 2 台(存储和处理数据)

例如:

  • mdw:Master 节点

  • sdw1sdw2:Segment 节点


2. 系统配置

在所有节点上执行以下操作。

2.1 修改主机名

编辑 /etc/hostname 文件,设置主机名:

bash

复制

sudo vi /etc/hostname

例如:

  • Master 节点:mdw

  • Segment 节点:sdw1sdw2

2.2 配置 /etc/hosts

编辑 /etc/hosts 文件,添加所有节点的 IP 和主机名映射:

bash

复制

sudo vi /etc/hosts

示例:

复制

192.168.1.101 mdw
192.168.1.102 sdw1
192.168.1.103 sdw2
2.3 关闭防火墙和 SELinux

bash

复制

sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
2.4 修改系统参数

编辑 /etc/sysctl.conf,添加以下内容:

bash

复制

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

应用配置:

bash

复制

sudo sysctl -p
2.5 修改用户限制

编辑 /etc/security/limits.conf,添加以下内容:

bash

复制

* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

3. 安装 Greenplum

在 Master 节点上执行以下操作。

3.1 下载 Greenplum

从 Greenplum 官方网站 下载 Greenplum 6.19 的安装包。

3.2 安装依赖

bash

复制

sudo yum install -y epel-release
sudo yum install -y apr apr-util bash bzip2 curl krb5 libcurl libevent libxml2 libyaml zlib openldap openssh openssl openssl-libs perl readline rsync R sed tar zip
3.3 解压并安装

bash

复制

tar -xzvf greenplum-db-6.19.0-rhel7-x86_64.tar.gz
sudo mkdir -p /usr/local/greenplum-db
sudo chown -R gpadmin:gpadmin /usr/local/greenplum-db
sudo -u gpadmin ./greenplum-db-6.19.0-rhel7-x86_64.bin
3.4 配置环境变量

编辑 ~/.bashrc,添加以下内容:

bash

复制

source /usr/local/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/master/gpseg-1
export PGPORT=5432
export PGUSER=gpadmin
export PGDATABASE=postgres

应用配置:

bash

复制

source ~/.bashrc

4. 配置 SSH 免密登录

在 Master 节点上执行以下操作。

4.1 生成 SSH 密钥

bash

复制

sudo -u gpadmin ssh-keygen -t rsa -b 4096
4.2 分发公钥

bash

复制

sudo -u gpadmin ssh-copy-id gpadmin@mdw
sudo -u gpadmin ssh-copy-id gpadmin@sdw1
sudo -u gpadmin ssh-copy-id gpadmin@sdw2
4.3 测试 SSH 连接

bash

复制

sudo -u gpadmin ssh sdw1
sudo -u gpadmin ssh sdw2

5. 初始化 Greenplum 集群

在 Master 节点上执行以下操作。

5.1 创建配置文件

创建 hostfile 和 segconfig 文件:

bash

复制

echo "mdw" > hostfile
echo "sdw1" >> hostfile
echo "sdw2" >> hostfile

echo "sdw1" > segconfig
echo "sdw2" >> segconfig
5.2 初始化集群

bash

复制

sudo -u gpadmin gpinitsystem -c gpconfig -h hostfile

6. 验证集群

在 Master 节点上执行以下操作。

6.1 检查集群状态

bash

复制

sudo -u gpadmin gpstate
6.2 连接到数据库

bash

复制

sudo -u gpadmin psql -d postgres
6.3 创建测试表

sql

复制

CREATE TABLE test (id int, name text);
INSERT INTO test VALUES (1, 'Greenplum');
SELECT * FROM test;

7. 常见问题

  • SSH 连接失败:确保所有节点的 SSH 服务已启动,并且防火墙已关闭。

  • 磁盘空间不足:确保每个节点有足够的磁盘空间。

  • 集群初始化失败:检查日志文件 /data/master/gpseg-1/pg_log/ 中的错误信息


http://www.kler.cn/a/557672.html

相关文章:

  • DeepSeek 助力 Vue 开发:打造丝滑的评论系统(Comment System)
  • SpringBoot中实现限流和熔断功能
  • Java 中 final 关键字的作用
  • LeetCode2506
  • Java 面试篇-MySQL 专题(如何定位慢查询、如何分析 SQL 语句、索引底层数据结构、什么是聚簇索引?什么是非聚簇索引?知道什么是回表查询?什么是覆盖索引?事务的特性、并发事务带来的问题?)
  • 答题卡识别阅卷系统(Matlab)
  • sklearn中的决策树-分类树:重要参数
  • 本地化部署 DeepSeek:从零到一的完整指南
  • DeepSeek03-ollama本地部署DeepSeek(NSFW)
  • leetcode 题目解析 第3题 无重复字符的最长子串
  • 标准I/O与文件I/O
  • 【DeepSeek-R1背后的技术】系列八:位置编码介绍(绝对位置编码、RoPE、ALiBi、YaRN)
  • Spring MVC 对象转换器:初级开发者入门指南
  • 【跟我学YOLO】(1)YOLO12:以注意力为中心的物体检测
  • 简聊RocketMQ如何确保顺序性
  • HADOOP_HOME and hadoop.home.dir are unset.
  • php处理图片出现内存溢出(Allowed memory size of 134217728 bytes exhausted)
  • 【网络编程】服务器模型(二):并发服务器模型(多线程)和 I/O 复用服务器(select / epoll)
  • 【多语言生态篇四】【DeepSeek×Rust:安全内存管理实践】
  • verilog笔记