《GreenPlum系列》GreenPlum详细入门教程02-GreenPlum安装

文章目录

  • 第二章 GreenPlum安装
    • 1.Docker创建centos容器
      • 1.1 拉取centos7镜像
      • 1.2 创建容器
      • 1.3 进入容器
      • 1.4 容器和服务器免密操作
        • 1.4.1 生成密钥
        • 1.4.2 拷贝密钥
      • 1.5 安装ssh服务和网络必须应用
      • 1.6 容器设置root密码
        • 1.6.1 安装passwd应用
        • 1.6.2 容器本机root设置密码
      • 1.7 容器本机免密
    • 2.安装GreenPlum
      • 2.1 准备安装包
      • 2.2 创建用户及用户组
      • 2.3 离线安装
        • 2.3.1 检查安装包并yum安装
        • 2.3.2 查看安装路径
        • 2.3.3 将greenplum目录权限授予gpadmin用户
        • 2.3.4 创建数据目录和配置目录
        • 2.3.5 切换gpadmin用户
        • 2.3.6 查看gpadmin用户环境变量
        • 2.3.7 SSH互信设置
        • 2.3.8 配置初始化文件
          • 2.3.8.1 拷贝文件到配置目录
          • 2.3.8.2 创建host文件
          • 2.3.8.3 修改初始化文件
        • 2.3.9 初始化数据库
        • 2.3.10 连接数据库
        • 2.3.11 修改密码
    • 3.远程连接
      • 3.1 开放端口
      • 3.2 修改pg_hba.conf
      • 3.3 重启greenplum
        • 3.3.1 gpstop关闭失败
        • 3.3.2 设置MASTER_DATA_DIRECTORY
        • 3.4 关闭gp
        • 3.5 启动gp
      • 3.6 远程连接

第二章 GreenPlum安装

  如果有充分的资源,可以做分布式安装GreenPlum。如果资源不足,可以做单节点安装,同样可以用来熟悉GreenPlum语法。本章计划使用Docker创建一个Centos7的镜像,并在Centos7中安装GreenPlum。如果不打算使用Docker的话,可以直接从第二步安装GreenPlum开始。

《Docker系列》Docker安装、运维教程

1.Docker创建centos容器

1.1 拉取centos7镜像

docker pull centos:7

[root@zxy ~]# docker pull centos:7
[root@zxy ~]# docker images
REPOSITORY      TAG       IMAGE ID       CREATED         SIZE
centos         7         eeb6ee3f44bd   18 months ago   204MB

1.2 创建容器

外部端口6002映射容器内部ssh端口22

外部端口5432映射内部端口5432

外部端口6000映射内部端口6000

外部端口6001映射内部端口6001

[root@zxy ~]# docker run -itd --name gp-docker01 \
> -p 6002:22 \
> -p 5432:5432 \
> -p 6000:6000 \
> -p 6001:6001 \
> --privileged eeb6ee3f44bd \
> /usr/sbin/init
b0c0fe56c04889c3d22aed9f422e16647030517b97f787095b70a8bf84f757a4

1.3 进入容器

[root@zxy ~]# docker exec -it b0c0fe56c048 /bin/bash
[root@b0c0fe56c048 /]#

1.4 容器和服务器免密操作

1.4.1 生成密钥

如果在执行ssh-keygen的时候,找不到该命令,那么使用yum安装openssh即可

bash: ssh-keygen: command not found

# 1.ssh-keygen失败
[root@b0c0fe56c048 /]# ssh-keygen
bash: ssh-keygen: command not found
# 2.安装openssh
[root@b0c0fe56c048 /]# yum install openssh
# 3.再次进行生成密钥操作,不用输入,直接点击enter键即可
[root@b0c0fe56c048 /]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
......
1.4.2 拷贝密钥

如果在执行ssh-copy-id失败的话,使用yum手动安装openssh-clients即可

bash: ssh-copy-id: command not found

# 1.拷贝失败
[root@b0c0fe56c048 /]# ssh-copy-id 125.22.95.188
bash: ssh-copy-id: command not found
# 2.安装openssh-clients
[root@b0c0fe56c048 /]# yum install openssh-clients
# 3.再次拷贝,进行免密
[root@b0c0fe56c048 /]# ssh-copy-id 125.22.95.188
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '125.22.95.188 (125.22.95.188)' can't be established.
ECDSA key fingerprint is SHA256:uvxqg9O/HlNw5Y3FNToE/llF8GeZQy/p+GXlIS3N6cY.
ECDSA key fingerprint is MD5:d4:15:a9:ea:f9:26:8f:2f:b4:dd:8a:42:3b:58:29:3b.
Are you sure you want to continue connecting (yes/no)? yes
.....

1.5 安装ssh服务和网络必须应用

[root@b0c0fe56c048 /]# yum -y install net-tools.x86_64
[root@b0c0fe56c048 /]# yum -y install openssh-server
[root@b0c0fe56c048 /]# systemctl restart sshd

1.6 容器设置root密码

1.6.1 安装passwd应用

安装passwd应用,可以给容器的用户设置密码,方便对本机进行免密操作

[root@b0c0fe56c048 /]# yum -y install passwd
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile* base: ftp.sjtu.edu.cn* extras: ftp.sjtu.edu.cn* updates: ftp.sjtu.edu.cn
Package passwd-0.79-6.el7.x86_64 already installed and latest version
Nothing to do
1.6.2 容器本机root设置密码
[root@b0c0fe56c048 /]# passwd root
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

1.7 容器本机免密

[root@b0c0fe56c048 /]# ssh-copy-id localhost
...
Are you sure you want to continue connecting (yes/no)? yes
...
root@localhost's password:Number of key(s) added: 1Now try logging into the machine, with:   "ssh 'localhost'"
and check to make sure that only the key(s) you wanted were added.

2.安装GreenPlum

2.1 准备安装包

[root@zxy ~]# docker cp /zxy/software/greenplum-db-6.4.0-rhel6-x86_64.rpm b0c0fe56c048:/

2.2 创建用户及用户组

[root@b0c0fe56c048 /]# groupadd gpadmin
[root@b0c0fe56c048 /]# useradd gpadmin -g gpadmin
[root@b0c0fe56c048 /]# passwd gpadmin

2.3 离线安装

2.3.1 检查安装包并yum安装

安装包

官网

  官方推荐使用yum的方式安装,yum安装的饿好处是,会自动帮我们下载安装依赖包。默认将greenplum软件安装到/usr/local目录下,并创建软连接。但是如果不能自动联网下载就会比较麻烦。

[root@b0c0fe56c048 /]# ls | grep greenplum
greenplum-db-6.4.0-rhel6-x86_64.rpm
[root@b0c0fe56c048 /]# yum install localhost greenplum-db-6.4.0-rhel6-x86_64.rpm
2.3.2 查看安装路径
[root@b0c0fe56c048 /]# ll /usr/local/ | grep greenplum
lrwxrwxrwx  1 root root   29 Mar 22 02:29 greenplum-db -> /usr/local/greenplum-db-6.4.0
drwxr-xr-x 12 root root 4096 Mar 22 02:29 greenplum-db-6.4.0
2.3.3 将greenplum目录权限授予gpadmin用户
[root@b0c0fe56c048 /]# chown -Rf gpadmin:gpadmin /usr/local/greenplum*
[root@b0c0fe56c048 /]# ll /usr/local/ | grep greenplum
lrwxrwxrwx  1 gpadmin gpadmin   29 Mar 22 02:29 greenplum-db -> /usr/local/greenplum-db-6.4.0
drwxr-xr-x 12 gpadmin gpadmin 4096 Mar 22 02:29 greenplum-db-6.4.0
2.3.4 创建数据目录和配置目录

创建数据目录gpdatamasterprimary等节点

创建配置目录gpconfigs

[root@b0c0fe56c048 /]# mkdir -p /data/gpdata/master
[root@b0c0fe56c048 /]# mkdir -p /data/gpdata/primary
[root@b0c0fe56c048 /]# mkdir -p /data/gpconfigs[root@b0c0fe56c048 /]# chown -Rf gpadmin:gpadmin /data/
2.3.5 切换gpadmin用户
[root@b0c0fe56c048 /]# su gpadmin
2.3.6 查看gpadmin用户环境变量

在~/.bashrc文件中添加source /usr/local/greenplum-db/greenplum_path.sh

这样在root用户下修改了环境后,一旦切换到gpadmin用户,会自动加载。

后续还有其他变量需要添加时,也添加在该文件中

[gpadmin@b0c0fe56c048 /]$ cat ~/.bashrc# .bashrc# Source global definitions
if [ -f /etc/bashrc ]; then. /etc/bashrc
fi# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=# User specific aliases and functions
source /usr/local/greenplum-db/greenplum_path.sh

刚修改好,可以手动source一下。source ~/.bashrc

2.3.7 SSH互信设置
[gpadmin@b0c0fe56c048 /]$ gpssh-exkeys -h b0c0fe56c048
[STEP 1 of 5] create local ID and authorize on local host[STEP 2 of 5] keyscan all hosts and update known_hosts file[STEP 3 of 5] retrieving credentials from remote hosts[STEP 4 of 5] determine common authentication file content[STEP 5 of 5] copy authentication files to all remote hosts[INFO] completed successfully
2.3.8 配置初始化文件
2.3.8.1 拷贝文件到配置目录

cp /usr/local/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_config /data/gpconfigs/

[gpadmin@b0c0fe56c048 /]$ cp /usr/local/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_config /data/gpconfigs/
2.3.8.2 创建host文件
[gpadmin@b0c0fe56c048 /]$ touch /data/gpconfigs/hostfile
[gpadmin@b0c0fe56c048 /]$ echo "b0c0fe56c048" > /data/gpconfigs/hostfile
2.3.8.3 修改初始化文件

主要关注master和segment的目录,主机名和数据库端口

[gpadmin@b0c0fe56c048 /]$ vi /data/gpconfigs/gpinitsystem_config[gpadmin@b0c0fe56c048 /]$ cat /data/gpconfigs/gpinitsystem_config# FILE NAME: gpinitsystem_config# Configuration file needed by the gpinitsystem################################################
#### REQUIRED PARAMETERS
#################################################### Name of this Greenplum system enclosed in quotes.
ARRAY_NAME="Greenplum Data Platform"#### Naming convention for utility-generated data directories.
SEG_PREFIX=gpseg#### Base number by which primary segment port numbers
#### are calculated.
PORT_BASE=6000#### File system location(s) where primary segment data directories
#### will be created. The number of locations in the list dictate
#### the number of primary segments that will get created per
#### physical host (if multiple addresses for a host are listed in
#### the hostfile, the number of segments will be spread evenly across
#### the specified interface addresses).
declare -a DATA_DIRECTORY=(/data/gpdata/primary /data/gpdata/primary)#### OS-configured hostname or IP address of the master host.
MASTER_HOSTNAME=b0c0fe56c048#### File system location where the master data directory
#### will be created.
MASTER_DIRECTORY=/data/gpdata/master#### Port number for the master instance.
MASTER_PORT=5432#### Shell utility used to connect to remote hosts.
TRUSTED_SHELL=ssh#### Maximum log file segments between automatic WAL checkpoints.
CHECK_POINT_SEGMENTS=8#### Default server-side character set encoding.
ENCODING=UNICODE
2.3.9 初始化数据库

gpinitsystem -c /data/gpconfigs/gpinitsystem_config -h /data/gpconfigs/hostfile

[gpadmin@b0c0fe56c048 /]$ gpinitsystem -c /data/gpconfigs/gpinitsystem_config -h /data/gpconfigs/hostfile
2.3.10 连接数据库
[gpadmin@b0c0fe56c048 /]$ psql -p 5432 -d postgres
psql (9.4.24)
Type "help" for help.
2.3.11 修改密码
[gpadmin@b0c0fe56c048 /]$ psql -p 5432 -d postgres
psql (9.4.24)
Type "help" for help.postgres=# \password gpadmin
Enter new password:
Enter it again:

3.远程连接

3.1 开放端口

通过指令查询任务进程,以及端口。

容器的6000,6001,5432,分别对应服务器的6000,6001,5432端口,主要开放5432端口允许外部访问即可

[gpadmin@b0c0fe56c048 /]$ ps -ef | grep greenplum
gpadmin   3560     1  0 02:39 ?        00:00:00 /usr/local/greenplum-db-6.4.0/bin/postgres -D /data/gpdata/primary/gpseg0 -p 6000
gpadmin   3561     1  0 02:39 ?        00:00:00 /usr/local/greenplum-db-6.4.0/bin/postgres -D /data/gpdata/primary/gpseg1 -p 6001
gpadmin   3582     0  0 02:39 ?        00:00:00 /usr/local/greenplum-db-6.4.0/bin/postgres -D /data/gpdata/master/gpseg-1 -p 5432 -E
gpadmin   3725   405  0 02:43 pts/1    00:00:00 grep --color=auto greenplum

3.2 修改pg_hba.conf

#添加如下一行即可,所有用户,所有IP均可访问
#生产环境中可自行选择配置
[gpadmin@b0c0fe56c048 /]$ vi /data/gpdata/master/gpseg-1/pg_hba.confhost     all         all         all       trust

3.3 重启greenplum

3.3.1 gpstop关闭失败

20230322:02:45:30:003728 gpstop:b0c0fe56c048:gpadmin-[CRITICAL]:-gpstop failed. (Reason='Environment Variable MASTER_DATA_DIRECTORY not set!') exiting...

在使用gpstop的时候,提示关闭失败,提示你设置MASTER_DATA_DIRECTORY

[gpadmin@b0c0fe56c048 /]$ gpstop
20230322:02:45:30:003728 gpstop:b0c0fe56c048:gpadmin-[INFO]:-Starting gpstop with args:
20230322:02:45:30:003728 gpstop:b0c0fe56c048:gpadmin-[INFO]:-Gathering information and validating the environment...
20230322:02:45:30:003728 gpstop:b0c0fe56c048:gpadmin-[CRITICAL]:-gpstop failed. (Reason='Environment Variable MASTER_DATA_DIRECTORY not set!') exiting...
3.3.2 设置MASTER_DATA_DIRECTORY

~/.bashrc文件中添加如下两行记录即可

[gpadmin@b0c0fe56c048 /]$ vi ~/.bashrc

MASTER_DATA_DIRECTORY=/data/gpdata/master/gpseg-1
export MASTER_DATA_DIRECTORY

[gpadmin@b0c0fe56c048 /]$ source ~/.bashrc

3.4 关闭gp
[gpadmin@b0c0fe56c048 /]$ gpstop
.....
20230322:02:46:57:003750 gpstop:b0c0fe56c048:gpadmin-[INFO]:-Cleaning up leftover shared memory
3.5 启动gp
[gpadmin@b0c0fe56c048 /]$ gpstart
......
20230322:02:47:21:003933 gpstart:b0c0fe56c048:gpadmin-[INFO]:-Database successfully started

3.6 远程连接

Dbeaver使用GreenPlum驱动连接数据库

在这里插入图片描述

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

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

相关文章

leetcode双指针问题总结 Python

目录 1. 二分查找 2. 有序数组中寻找两个数和等于某数 3. 两数平方和 4. 翻转字符串中的元音字符 5. 判断是否为回文字符串(最多可以删除一个字符) 6. 归并两个有序数组 7. 判断链表是否有环 8. 最长子序列 1. 二分查找 从有序数组 nums 中查找…

uniapp获取手机当前信息及应用版本

appVersion 是app端查询的数据信息 appWgtVersion 是浏览器端查询的数据信息 onLoad() {const systemInfo uni.getSystemInfoSync();console.log(systemInfo);// #ifdef H5const uniAppVersion systemInfo.appVersion;// #endif// #ifndef H5const uniAppVersion systemIn…

C++学习笔记——对象的指针

目录 一、对象的指针 二、减少对象的复制开销 三、应用案例 游戏引擎 图像处理库 数据库管理系统 航空航天软件 金融交易系统 四、代码的案例应用 一、对象的指针 是一种常用的技术,用于处理对象的动态分配和管理。使用对象的指针可以实现以下几个方面的功…

无法访问Bing网站 - 解决方案

问题 Bing官方网址:https://www.bing.com/ 电脑无法访问Bing网站,但手机等移动设备可以访问Bing网站,此时可尝试以下方案。 以下方案适用于各种系统,如Win/Linux系统。 解决方案 方案1 修改Bing网址为:https://www4…

JAVA毕业设计632—基于Java+ssm的宠物店商城系统(源代码+数据库)

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于Javassm的宠物店商城系统(源代码数据库)632 一、系统介绍 本项目分为用户、营养师、管理员三种角色 1、用户: 登录、注册、宠物信息、宠物粮食、宠物用品、宠物疫…

二叉树基础oj练习(单值二叉树、相同的树、二叉树的前序遍历)

讲了这么多数据结构相关的知识(可以看我的数据结构文章专栏): 抓紧刷题巩固一下了 目录 1.单值二叉树 题目描述 思路1 代码1 思路2 代码2 2.相同的树 题目描述 思路 代码 3.二叉树的前序遍历 代码 思路 1.单值二叉树 965. 单值二叉树 - 力扣(LeetCod…

C#进行Web API开发时,遇到的常见问题

当使用C#进行Web API开发时,可能会遇到以下一些常见问题: 跨域请求 由于浏览器的同源策略限制,跨域请求可能会引发问题。解决方法可以使用CORS(跨域资源共享)来允许从特定的域名或端口访问你的API。 // 添加CORS中间…

influx v2 cli设置influxdb过期策略

目录 背景解法设置config设置buckets找到需要修改的bucket ID更新bucket保留策略 参考资料 背景 最近刚使用influxdb,需要对某个db设置一个过期策略。由于初次使用,对influx client命令行不熟悉,于是在网上找相关的教程,但是搜到…

pycharm社区版配置flask开发环境

新建配置文件,类型选择Shell Script 设置Execute中flask.exe的路径 设置options :--appflask_app.py run --port5000 --debug 设置working 路径 设置环境变量FLASK_APPflask_app.py;FLASK_ENVdevelopment 注意:FLASK_APPflask_app.py和上…

YOLOv8 损失函数改进 | 引入 Shape-IoU 考虑边框形状与尺度的度量

🗝️改进YOLOv8注意力系列一:结合ACmix、Biformer、BAM注意力机制 论文讲解加入代码本文提供了改进 YOLOv8注意力系列包含不同的注意力机制以及多种加入方式,在本文中具有完整的代码和包含多种更有效加入YOLOv8中的yaml结构,读者可以获取到注意力加入的代码和使用经验,总…

Android Studio 最新版本首次下载和安装以及汉化教程【+第二次安装使用教程】

🌟博主领域:嵌入式领域&人工智能&软件开发 前言:本教程详解首次安装和下载最新版本的Android Studio ,以及汉化教程。另外详解当第二次下载使用时解决遇到的问题。 目录 1.Android Studio 下载 2.Android Studio 首次…

【Unity】优化 if else 和 Switch Case

优化 if else 和 Switch Case z 大量的if else 和 Switch Case会造成代码冗余且消耗性能&#xff0c;可以借用如下方法优化 使用字典进行优化 方法优化&#xff1a; //注册字典&#xff0c;通过Action作为值&#xff0c;然后进行回调 private Dictionary<int, Action<Cha…

Hadoop之mapreduce参数大全-1

1.设置Map/Reduce任务允许使用的最大虚拟内存大小 mapred.task.maxvmem是MapReduce的一个配置参数&#xff0c;用于指定每个Map/Reduce任务允许使用的最大虚拟内存大小&#xff08;以字节为单位&#xff09;。如果一个任务使用的虚拟内存超过了此参数指定的值&#xff0c;则任…

【云计算】云计算概述

1. 云计算概述 1.1 云计算的定义 美国国家标准与技术研究院(NIST)定义 云计算是一种按使用量付费的模式&#xff0c;这种模式提供可用的、便捷的、按需的网络访问&#xff0c;进入可配置的计算资源共享池(资源包括网络&#xff0c;服务器&#xff0c;存储&#xff0c;应用软件…

Xmind - win10安装破解Xmind2023

Xmind - win10安装破解Xmind2023 1、下载 Xmind下载 提取码:we6i 2、安装 Step 1:双击运行 exe文件 Step 2:忽略最新版本 最近更新选择继续升级至Pro选择取消Step 4:直接选择同意授权

Java线程池最全详解

1. 引言 在当今高度并发的软件开发环境中&#xff0c;有效地管理线程是确保程序性能和稳定性的关键因素之一。Java线程池作为一种强大的并发工具&#xff0c;不仅能够提高任务执行的效率&#xff0c;还能有效地控制系统资源的使用。 本文将深入探讨Java线程池的原理、参数配置…

【python基础】一文搞懂:Python 中轻量型数据库 SQLite3 的用法

一文搞懂&#xff1a;Python 中轻量型数据库 SQLite3 的用法 文章目录 一文搞懂&#xff1a;Python 中轻量型数据库 SQLite3 的用法1 引言2 SQLite3 简介3 基本步骤4 示例代码4.1 连接数据库4.2 创建表4.3 插入数据4.4 查询数据4.5 更新/删除数据4.6 关闭数据库连接 5 实例演示…

java如何使用poi-tl在word文档里面渲染多张图片

1. Poi-tl官网 http://deepoove.com/poi-tl/ 2.引入依赖 <dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.12.1</version></dependency>3.编写Word图片模版 {{?pictures}}{{pictur…

NPN PNP磁性开关区别

自记&#xff1a; 网上有些前后内容是相反的&#xff0c;估计自己就没明白&#xff0c;此为分析后得出结论&#xff0c;看完后可懂 1、NPN&#xff08;源型&#xff09;&#xff1a;当导通时输出低电平 当导通时&#xff0c;信号输出线out和0v线连接&#xff0c;相当于输出低电…

代码随想录算法训练营——数组篇总结

理解数组的逻辑结构与物理结构&#xff0c;数组是存放在连续内存空间上的相同类型数据的集合。数组的删除只能用覆盖经典题目1&#xff1a;二分法&#xff0c;要深刻理解循环不变量法则&#xff0c;这也是写代码的重要法则经典题目2:双指针法&#xff0c;暴力破解两层循环都可以…