GreenPlum集群部署之抽丝剥茧

news2024/11/26 0:50:58

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

  • 前言
    • 📣 1.GreenPlum介绍
    • 📣 2.安装包下载
    • 📣 3.环境准备
      • ✨ 3.1 集群规划
      • ✨ 3.2 host设置
      • ✨ 3.3 用户及组创建
      • ✨ 3.4 配置文件
      • ✨ 3.5 配置互信
      • ✨ 3.6 关闭防火墙
      • ✨ 3.7 禁用selinux
      • ✨ 3.8 关闭RemoveIPC
      • ✨ 3.9 修改打开文件限制
      • ✨ 3.10 修改ssh连接数
    • 📣 4.安装GreenPlum
      • ✨ 4.1 安装依赖
      • ✨ 4.2 安装rpm包
      • ✨ 4.3 配置环境变量
      • ✨ 4.4 数据库初始化
    • 📣 5.GreenPlum验证

前言

Greenplum是一个面向数据仓库应用的分布式关系型数据库,本文介绍了整个集群部署的过程。

📣 1.GreenPlum介绍

Greenplum是基于开源PostgreSQL的分布式数据库,采用shared-nothing架构,即主机、操作系统、内存、存储都是每台服务器独立自我控制,不存在共享。
Greenplum本质上是一个关系型数据库集群,实际上是由多个独立的数据库服务组合而成的一个逻辑数据库。与Oracle的RAC不同,这种数据库集群采取的是MPP(Massively Parallel Processing)架构。
Greenplum最大的特点就是基于低成本的开放平台基础上提供强大的并行数据计算性能和海量数据管理能力。这个能力主要指的是并行计算能力,是对大任务、复杂任务的快速高效计算。

在这里插入图片描述

📣 2.安装包下载

https://github.com/greenplum-db/gpdb/releases
下载对应操作系统的RPM包即可,安装包大约65MB

在这里插入图片描述

📣 3.环境准备

✨ 3.1 集群规划

1个master,2个segment的集群,OS均为CentOS 7.6
192.168.6.12  master
192.168.6.13  segment1
192.168.6.14  segment2

--设置host名
hostnamectl set-hostname master
hostnamectl set-hostname segment1
hostnamectl set-hostname segment2

✨ 3.2 host设置

编辑/etc/hosts的文件

在Greenplum中,习惯将Master机器叫做mdw,将Segment机器叫做sdw,dw的含义为Data Warehouse。
192.168.6.12   master mdw
192.168.6.13   segment1 sdw1
192.168.6.14   segment2 sdw2

注意:以上在所有节点均做配置,mdw和sdw只是一个主机的别名

✨ 3.3 用户及组创建

为所有节点创建gpadmin用户:
groupadd -g 1630 gpadmin
useradd -g 1630 -u 1630 -m -d /home/gpadmin -s /bin/bash gpadmin
chown -R gpadmin:gpadmin /home/gpadmin
echo "gpadmin:jeames" | chpasswd

✨ 3.4 配置文件

为所有的节点创建一个all_hosts文件,包含所有节点主机名:
su - gpadmin

mkdir -p /home/gpadmin/conf/

cat > /home/gpadmin/conf/all_hosts <<"EOF"
master
segment1
segment2
EOF


为所有的节点创建一个seg_hosts文件 ,包含所有的Segment Host的主机名:
cat > /home/gpadmin/conf/seg_hosts <<"EOF"
segment1
segment2
EOF

✨ 3.5 配置互信

集群ssh免密,每个节点机器 gpadmin 用户操作

# 1.生成秘钥对
ssh-keygen -t rsa

# 2.分发公钥
ssh-copy-id gpadmin@master
ssh-copy-id gpadmin@segment1
ssh-copy-id gpadmin@segment2

✨ 3.6 关闭防火墙

# 每个节点机器 root 用户操作

systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld

在这里插入图片描述

✨ 3.7 禁用selinux

cat /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

sed -i "s#^SELINUX=.*#SELINUX=disabled#g"  /etc/selinux/config

✨ 3.8 关闭RemoveIPC

RemoveIPC默认开启,会影响使用 the shared memory segments 和 semaphores 的所有应用程序,
务必编辑 logind.conf 文件并设置 RemoveIPC=no

# 1.编辑 /etc/systemd/logind.conf 文件设置 RemoveIPC=no
echo "RemoveIPC=no" >> /etc/systemd/logind.conf
# 2.使配置生效
service systemd-logind restart

✨ 3.9 修改打开文件限制

# 覆盖原有配置信息
cat <<EOF > /etc/security/limits.conf
soft nofile 524288
hard nofile 524288
soft nproc 131072
hard nproc 131072
EOF

✨ 3.10 修改ssh连接数

# 追加配置信息
cat <<EOF >> /etc/ssh/sshd_config
MaxStartups 200
MaxSessions 200
EOF

📣 4.安装GreenPlum

✨ 4.1 安装依赖

##创建挂载目录
[root@master ~]# mkdir /cdrom

[root@master ~]# ls -lrt /opt/CentOS-7-x86_64-DVD-1810.iso
-rw-r--r-- 1 root root 4712300544 Apr  8 09:28 /opt/CentOS-7-x86_64-DVD-1810.iso

##挂载目录
[root@master ~]# mount -o loop /opt/CentOS-7-x86_64-DVD-1810.iso /cdrom
[root@master ~]# umount -f /cdrom

[root@master opt]# df -TH
Filesystem                     Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos_jeames-root xfs        49G  6.1G   43G  13% /
devtmpfs                       devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs                          tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs                          tmpfs     2.0G   13M  2.0G   1% /run
tmpfs                          tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/sda1                      xfs       1.1G  153M  911M  15% /boot
tmpfs                          tmpfs     396M     0  396M   0% /run/user/0
/dev/loop0                     iso9660   4.6G  4.6G     0 100% /cdrom

##yum源配置文件
[root@master ~]# cd /etc/yum.repos.d/
[root@master yum.repos.d]# mkdir bak
[root@master yum.repos.d]# mv *.repo bak

[root@master yum.repos.d]# vi local.repo
[base-local]
name=CentOS7-local
baseurl=file:///cdrom
enabled=1
gpgcheck=0

#清空并重载yum
yum clean all
yum makecache
##测试yum安装
yum -y install tree


##安装依赖包
yum install net-tools -y

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 krb5-devel

✨ 4.2 安装rpm包

## 在所有节点操作,root用户操作

1.默认安装到/usr/local下
rpm -ivh open-source-greenplum-db-6.23.1-rhel7-x86_64.rpm

2.赋权,修改该路径gpadmin操作权限
chown -R gpadmin:gpadmin /usr/local/greenplum*

✨ 4.3 配置环境变量

# master创建目录,用作集群数据的存储目录
mkdir -p /greenplum/data/
chown -R gpadmin:gpadmin /greenplum

-- 所有节点
echo ". /usr/local/greenplum-db/greenplum_path.sh" >> /home/gpadmin/.bashrc

-- master配置
echo "export MASTER_DATA_DIRECTORY=/greenplum/data/master/gpseg-1" >> /home/gpadmin/.bashrc

# 使配置文件生效
source /home/gpadmin/.bashrc

✨ 4.4 数据库初始化

# 在master节点操作:创建一个初始化副本 initgp_config,根据前面的配置,修改参数

-- 在所有节点root用户操作,创建3个目录
主节点使用的是master目录,从节点使用的是primary目录和mirror目录

mkdir -p /greenplum/data/master
mkdir -p /greenplum/data/primary
mkdir -p /greenplum/data/mirror
chown -R gpadmin:gpadmin /greenplum


-- master节点
[root@master ~]# su - gpadmin
cat > /home/gpadmin/conf/initgp_config <<"EOF"
declare -a DATA_DIRECTORY=(/greenplum/data/primary)
declare -a MIRROR_DATA_DIRECTORY=(/greenplum/data/mirror)
ARRAY_NAME="jemgp"
SEG_PREFIX=gpseg
PORT_BASE=6000
MASTER_PORT=5432
MASTER_HOSTNAME=master
MASTER_DIRECTORY=/greenplum/data/master
DATABASE_NAME=rptdb
MACHINE_LIST_FILE=/home/gpadmin/conf/seg_hosts
EOF


-- 在master节点操作,执行初始化命令
su - gpadmin
gpinitsystem -c /home/gpadmin/conf/initgp_config -h /home/gpadmin/conf/seg_hosts

在这里插入图片描述

📣 5.GreenPlum验证

若初始化成功,则GP自动启动,可以看到master节点上的5432已经在listen了,psql进入数据库,开始greenplum之旅。

[gpadmin@master ~]$ netstat -tulnp | grep 5432
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      56385/postgres
tcp6       0      0 :::5432                 :::*                    LISTEN      56385/postgres

[gpadmin@master ~]$ psql -d rptdb
psql (9.4.26)
Type "help" for help.

rptdb=# \l
                               List of databases
   Name    |  Owner  | Encoding |  Collate   |   Ctype    |  Access privileges
-----------+---------+----------+------------+------------+---------------------
 postgres  | gpadmin | UTF8     | en_US.utf8 | en_US.utf8 |
 rptdb     | gpadmin | UTF8     | en_US.utf8 | en_US.utf8 |
 template0 | gpadmin | UTF8     | en_US.utf8 | en_US.utf8 | =c/gpadmin         +
           |         |          |            |            | gpadmin=CTc/gpadmin
 template1 | gpadmin | UTF8     | en_US.utf8 | en_US.utf8 | =c/gpadmin         +
           |         |          |            |            | gpadmin=CTc/gpadmin
(4 rows)

rptdb=# show port;
 port
------
 5432
(1 row)

rptdb=# show listen_addresses;
 listen_addresses
------------------
 *
(1 row)

rptdb=# select * from gp_segment_configuration order by 1;
 dbid | content | role | preferred_role | mode | status | port | hostname | address  |            datadir
------+---------+------+----------------+------+--------+------+----------+----------+--------------------------------
    1 |      -1 | p    | p              | n    | u      | 5432 | master   | master   | /greenplum/data/master/gpseg-1
    2 |       0 | p    | p              | n    | u      | 6000 | segment1 | segment1 | /greenplum/data/primary/gpseg0
    3 |       1 | p    | p              | n    | u      | 6000 | segment2 | segment2 | /greenplum/data/primary/gpseg1
(3 rows)

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/608550.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【stable diffusion原理解读通俗易懂,史诗级万字爆肝长文,喂到你嘴里】

文章目录 一、前言&#xff08;可跳过&#xff09;二、stable diffusion1.clip2.diffusion modelforward diffusion &#xff08;前向扩散&#xff09;逆向扩散&#xff08;reverse diffusion&#xff09;采样图阶段小结 3.Unet modeltimestep_embedding采用正余弦编码 三、sta…

华为OD机试真题 Java 实现【求符合要求的结对方式】【2023Q1 100分】,附详细解题思路

一、题目描述 用一个数组A代表程序员的工作能力&#xff0c;公司想通过结对编程的方式提高员工的能力&#xff0c;假设结对后的能力为两个员工的能力之和&#xff0c;求一共有多少种结对方式使结对后能力为N。 二、输入描述 6 2 3 3 4 5 1 6 第一行为员工的总人数&#xff…

精简总结:一文说明软件测试基础概念

基础概念-1 基础概念-2 目录 一、什么是软件测试&#xff1f; 二、软件测试的特点 三、软件测试和开发的区别 1、内容&#xff1a; 2、技能区别 3、工作环境 4、薪水 5、发展前景 6、繁忙程度 7、技能要求 四、软件测试与调试的区别 1、角色 2、目的 3、执行的阶…

Lecture 7 Deep Learning for NLP: Feedforward Networks

目录 Deep LearningFeedforward Neural Network 前馈神经网络Neuron 神经元Output Layer 输出层OptimizationRegularization 正则化Topic Classification 主题分类Language Model as Classifiers 语言模型作为分类器Word Embeddings 词嵌入Training a Feed-Forward Neural Netw…

RVOS操作系统协作式多任务切换实现-03

RVOS操作系统协作式多任务切换实现-03 任务&#xff08;task&#xff09;多任务 &#xff08;Multitask&#xff09;任务上下文&#xff08;Context&#xff09;多任务系统的分类协作式多任务 创建和初始化第 1 号任务切换到第一号任务执行协作式多任务 - 调度初始化和任务创建…

虚拟机-安装与使用2023

虚拟机-安装与使用 前言 一、虚拟机 1.VMware 2.Virtualbox 二、VMware 的下载 三、VMware 的安装 四、验证是否安装成功 五、运行 VMware 六、VMware 上安装其它操作系统 安装 Windows 10安装 CentOS-Linux安装 Kali-Linux 七、VMware 常用功能同步时间系统备份克隆快照内存设…

黑马Redis视频教程高级篇(多级缓存案例导入说明)

目录 一、安装MYSQL 1.1、准备目录 1.2、运行命令 1.3、修改配置 1.4、重启 二、导入SQL 三、导入Demo工程 3.1、分页查询商品 3.2、新增商品 3.3、修改商品 3.4、修改库存 3.5、删除商品 3.6、根据id查询商品 3.7、根据id查询库存 3.8、启动 四、导入商品查询…

Maven高级——私服(完结撒花!)

作用与介绍 一个公司内有两个项目组&#xff0c;如果其中一个开发了一个依赖tlias-utils,另一个项目组要使用的话要么就是传过来直接install放到自己的本地仓库里面的。 但是也可以搭建一个公共仓库&#xff0c;专门供公司局域网内部使用&#xff0c;也就是所谓私服。 然后在…

chatgpt赋能python:Python反向函数:在编程中的威力

Python反向函数&#xff1a;在编程中的威力 在Python中&#xff0c;反向函数是一个强大且常用的工具&#xff0c;可以帮助程序员在编写代码时更加高效和精确地处理数据。在本文中&#xff0c;我们将讨论Python反向函数的用途和实现&#xff0c;并详细介绍如何在您的代码中使用…

Java007——Java注释介绍

围绕以下3点介绍&#xff1a; 1、什么是Java注释&#xff1f; 2、Java注释的作用&#xff1f; 3、Java注释长什么样&#xff0c;以及怎么使用Java注释&#xff1f; 一、什么是Java注释&#xff1f; Java注释是在Java程序中用来描述代码的特殊语句。 注释被忽略并且不被编译器…

MySQL表的增删改查

目录 一、Create 1.insert 2.更新 3.替换 二、Retrieve&#xff08;查找&#xff09; 1.select 2.where 3. 结果排序 4. 筛选分页结果 三、Update 四、Delete 1.删除数据 2.截断表 五、聚合函数 1.count&#xff1a; 2.avg 3.sum 4.max 5.min 六、Group …

微信小程序开发实战 ②④(自定义 TabBar练习)

作者 : SYFStrive 博客首页 : HomePage &#x1f4dc;&#xff1a; 微信小程序 &#x1f4cc;&#xff1a;个人社区&#xff08;欢迎大佬们加入&#xff09; &#x1f449;&#xff1a;社区链接&#x1f517; &#x1f4cc;&#xff1a;觉得文章不错可以点点关注 &#x1f4…

十四、神经风格迁移

文章目录 1、神经风格迁移2、生成图片的代价函数THE END 1、神经风格迁移 \qquad 神经风格迁移就是将一幅原有的图片(content picture, C)&#xff0c;对照着一幅风格图片(style picture, S)&#xff0c;生成一幅新的图片(generated picture, G)&#xff0c;如下图所示&#xf…

k8s istio 集成 多版本应用服务 和 网格监测

说明 博客文章地址:https://blog.taoluyuan.com/posts/istio-getting-started/ 本主要是内容: 使用 istioctl 安装 istio采用 istio 官方提供 的 应用bookinfo,实现多版本的服务应用部署istio 网关 gateway,vs,dr 的基本使用利用监测工具 prometheus,grafana,jaeger 查看 ist…

关于EMC Unity 存储系统DIMM内存的几个问题

下面是客户咨询最多的几个关于EMC Unity的DIMM内存的问题&#xff0c;供大家参考。 1. Unity存储能否自己扩容内存 有客户觉得Unity存储的内容太小&#xff0c;想自己扩容内存&#xff0c;很朴实的想法&#xff0c;原来是每个控制器3条16gb&#xff0c;能不能升级到3条32gb或…

基于Mybatis-Plus拦截器实现MySQL数据加解密

一、背景 用户的一些敏感数据&#xff0c;例如手机号、邮箱、身份证等信息&#xff0c;在数据库以明文存储时会存在数据泄露的风险&#xff0c;因此需要进行加密&#xff0c; 但存储数据再被取出时&#xff0c;需要进行解密&#xff0c;因此加密算法需要使用对称加密算法。 常…

Unreal5 第三人称射击游戏 射击功能实现1

状态机的缓存 状态机缓存功能相当于我们只需要实现一次&#xff0c;可以在多个地方引用&#xff0c;也可以在别的状态机里面使用&#xff0c;而不是在里面再重新写一遍相应的功能。 我们可以在基础状态机的链接拉出一条线&#xff0c;搜索“缓存” 第一个就是新保存的缓存姿势…

Qt OpenGL(四十二)——Qt OpenGL 核心模式-GLSL(二)

提示:本系列文章的索引目录在下面文章的链接里(点击下面可以跳转查看): Qt OpenGL 核心模式版本文章目录 Qt OpenGL(四十二)——Qt OpenGL 核心模式-GLSL(二) 冯一川注:GLSL其实也是不断迭代的,比如像3.3版本中,基本数据类型浮点型只支持float型,而GLSL4.0版本开始就…

chatgpt赋能python:Python单位换算—让编程更精确的工具

Python单位换算—让编程更精确的工具 作为一名10年经验的Python工程师&#xff0c;我深深认识到在各种计算机领域的重要性。它可以帮助我们进行大量数据的计算和转换&#xff0c;其中的单位换算是其中一个重要的子领域。 单位换算对编程的重要性 无论是在科学研究还是工业生…

序贯最小二乘平差 VS 卡尔曼滤波

文章目录 Part.I IntroductionPart.II 概念比较Chap.I 序贯最小二乘平差Chap.II 卡尔曼滤波Chap.III 比较 Reference Part.I Introduction 序贯最小二乘平差和卡尔曼滤波有些相似&#xff0c;但是还是有一些区别&#xff1a; 序贯最小二乘平差用来处理静态数据&#xff0c;也…