docker搭建greenplum集群

准备环境

centos版本:CentOS Linux release 7.6.1810
docker版本:Docker version 19.03.13
greenplum版本: greenplum-db-6.4.0
greenplum下载 提取码:oumt

离线环境下安装docker

1.从docker官方下载安装包
2.内网环境中安装docker

#创建文件夹
mkdir docker 在这里插入代码片
#上传解压tar包
tar -zxvf docker-19.03.7.tgz
#将docker包下的指令移动到/usr/bin目录下
mv docker/* /usr/bin/
#配置代理,使docker可以从仓库拉镜像
mkdir /etc/systemd/system/docker.service.d
echo /etc/systemd/system/docker.service.d/http-proxy.conf
#在http-proxy.conf中配置一下内容
[Service] 
Environment="HTTP_PROXY=http://ip:port/" "HTTPS_PROXY=http://ip:port/" "NO_PROXY=localhost,127.0.0.1,×.×.×.×" 
#刷新配置,重启docker服务:
sudo systemctl daemon-reload
sudo service docker restart
#检查是否配置成功
systemctl show --property=Environment docker  #如果配置成功,执行该命令将会看到配置的代理信息
#配置国内镜像源
echo /etc/docker/daemon.json
#复制粘贴时注意json格式
{
    
    
"registry-mirrors": ["http://hub-mirror.c.163.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn"]
} 

#查看是否配置成功:
sudo docker info
  • 如果docker服务没有启动成功:参考一下解决办法
    关闭se :sudo setenforce 0(需要root)
    将以下文件放入 /etc/systemd/system/docker.service 中

[Unit]
 
Description=Docker Application Container Engine
 
Documentation=https://docs.docker.com
 
After=network-online.target firewalld.service
 
Wants=network-online.target
 
 
[Service]
 
Type=notify
 
# the default is not to use systemd for cgroups because the delegate issues still
 
# exists and systemd currently does not support the cgroup feature set required
 
# for containers run by docker
 
ExecStart=/usr/bin/dockerd
 
ExecReload=/bin/kill -s HUP $MAINPID
 
# Having non-zero Limit*s causes performance problems due to accounting overhead
 
# in the kernel. We recommend using cgroups to do container-local accounting.
 
LimitNOFILE=infinity
 
LimitNPROC=infinity
 
LimitCORE=infinity
 
# Uncomment TasksMax if your systemd version supports it.
 
# Only systemd 226 and above support this version.
 
#TasksMax=infinity
 
TimeoutStartSec=0
 
# set delegate yes so that systemd does not reset the cgroups of docker containers
 
Delegate=yes
 
# kill only the docker process, not all processes in the cgroup
 
KillMode=process
 
# restart the docker process if it exits prematurely
 
Restart=on-failure
 
StartLimitBurst=3
 
StartLimitInterval=60s
  
[Install]
 
WantedBy=multi-user.target
  • 启动服务
 #添加文件权限并启动docker
chmod +x /etc/systemd/system/docker.service 
#重载unit配置文件
systemctl daemon-reload
#启动Docker
systemctl start docker
#设置开机自启
systemctl enable docker.service

离线安装docker-compose

下载docker-compose
docker-compose-Linux-x86_64

#移动到/usr/local/bin目录下并修改名称
sudo mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
#添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
#查看是否成功
docker-compose -v

docker-compose安装greenplum

#新建greenplum文件夹
mkdir docker/greenplum
#上传greenplum安装包到greenplum文件夹下
#编辑Dockerfile文件
vi Dockerfile
#复制粘贴以下内容
FROM lyasper/gphost
COPY greenplum-db-6.4.0-rhel7-x86_64.rpm /home/gpadmin/greenplum-db.rpm
RUN rpm -i /home/gpadmin/greenplum-db.rpm --nodeps --force
RUN chown -R gpadmin /usr/local/greenplum-db*
RUN rm -f /home/gpadmin/greenplum-db.rpm
#编辑docker-compose.yml文件
vi docker-compose.yml
#复制粘贴以下内容
version: '3'
services:
  mdw:
    hostname: mdw
    image: "mygreenplum"
    ports:
      - "2222:22"
      - "5433:5432"
  sdw1:
    hostname: sdw1
    image: "mygreenplum"
  sdw2:
    hostname: sdw2
    image: "mygreenplum"
  etl:
    hostname: etl
    image: "mygreenplum"
  • 执行Dockerfile文件
 docker build . -t mygreenplum
  • 执行成功后如下
    在这里插入图片描述

  • 执行docker-compose

docker-compose up -d

集群配置和初始化

  • 登录master节点
ssh -p 2222 gpadmin@127.0.0.1  #密码: changeme
  • 刷新配置文件
source /usr/local/greenplum-db/greenplum_path.sh
  • 初始化集群配置
./artifact/prepare.sh -s 2 -n 2
  • 集群初始化
source env.sh
gpinitsystem -a -c gpinitsystem_config
  • 初始化成功后如下
    在这里插入图片描述
  • 注意:如果第一次初始化失败,后续再次初始化的时候需要将之前的容器停止并刪除,否则会报错
  • 命令行登录
#gpadmin超级用户无密码,登录master节点后直接执行以下命令即可登录
psql
#如果想修改gpadmin密码可执行
alter user gpadmin with password 'new password';
  • 远程登录集群,修改以下配置
# 登录master节点后,执行以下命令cd /gpadmin/master/gpseg-1
vi pg_hba.conf
# 最后一行添加如下內容
host    all     all     0.0.0.0/0       md5
# 修改后重启集群
gpstop -u
  • 至此,docker安裝greenplum完成。

猜你喜欢

转载自blog.csdn.net/weixin_41197407/article/details/112303178
今日推荐