记录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完成。