Greenplum docker 安装测试环境

  • 下载docker 拉去docker 镜像,创建镜像
    yum -y install docker
    systemctl start dokcer
    docker pull centos:6
    docker run --privileged -dti -p 65000:6500 --name gptest1 centos:6 bash
    docker run --privileged -dti --name gptest2 centos:6 bash
    docker run --privileged -dti --name gptest3 centos:6 bash
    docker run --privileged -dti --name gptest4 centos:6 bash
    --privileges docker 有root权限
  • 2、下载依赖包并启动ssh,并配置时间同步
    docker中默认没有启动ssh,为了方便各节点之间的互连,启动docker的每个节点里面的ssh,并创建相关的认证key
    yum install -y net-tools which openssh-clients openssh-server less zip
    unzip iproute.x86_64 vim ntp ed
    yum install update 更新系统内核
    ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
    ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
    /usr/sbin/sshd
    ntpdate ntp1.aliyun.com

    1. 配置主机域名映射关系
      172.17.0.2 dw-greenplum-1 mdw
      172.17.0.3 dw-greenplum-2 sdw1
      172.17.0.4 dw-greenplum-3 sdw2
      172.17.0.4 dw-greenplum-4 sdw3
      同时,修改所有节点里面的 /etc/sysconfig/network 文件,保持主机名一致
      修改/etc/hostname 的名字
      [[email protected] /]# cat /etc/hostname
      mdw
      [[email protected] /]# cat /etc/sysconfig/network
      NETWORKING=yes
      HOSTNAME=mdw
    2. 修改每个节点上面的文件打开数量的限制
      cat /etc/security/limits.conf
      • soft nofile 65536
      • hard nofile 65536
      • soft nproc 131072
      • hard nproc 131072
        [[email protected] /]# cat /etc/security/limits.d/90-nproc.conf
      • soft nproc 131072
        root soft nproc unlimited
    3. 修改内核参数
      sysctl -w kernel.sem="500 64000 50 150"
      cat /proc/sys/kernel/sem
    4. 关闭所有节点的防火墙和selinux
      service iptables stop
      chkconfig iptables off
      setenforce 0
    5. 下载greenplum安装包
      需要注册账号。也可以在公司的机器上面拉取现有的二进制包
      https://network.pivotal.io/products/pivotal-gpdb

    7.所有节点创建 greenplum 的用户和用户组
    groupadd -g 530 gpadmin
    useradd -g 530 -u 530 -m -d /home/gpadmin -s /bin/bash gpadmin
    chown -R gpadmin:gpadmin /home/gpadmin
    echo 123456 |passwd gpadmin --stdin

    1. 在master上面安装greenplum
      su - gpadmin
      unzip greenplum-db-4.3.14.1-rhel5-x86_64.zip
      sh /greenplum-db-4.3.14.1-rhel5-x86_64.bin
      安装期间需要修改默认安装目录,输入/home/gpadmin/greenplum-db
      为了方便安装集群,greenplum提供了批量操作的指令,通过创建配置文件,以使用批处理命令
      创建文件
      [[email protected] ~]$ cat conf/hostlist
      mdw
      sdw1
      sdw2
      sdw3
      [[email protected] ~]$ cat conf/seg_hosts
      sdw1
      sdw2
    2. 设置环境变量打通所有的节点
      source greenplum-db/greenplum_path.sh
      [[email protected] ~]$ gpssh-exkeys -f /home/gpadmin/conf/hostlist //传输秘钥
      [STEP 1 of 5] create local ID and authorize on local host
      ... /home/gpadmin/.ssh/id_rsa file exists ... key generation skipped

    [STEP 2 of 5] keyscan all hosts and update known_hosts file

    [STEP 3 of 5] authorize current user on remote hosts
    ... send to sdw1
    ... send to sdw2

    [STEP 4 of 5] determine common authentication file content

    [STEP 5 of 5] copy authentication files to all remote hosts
    ... finished key exchange with sdw1
    ... finished key exchange with sdw2
    ... finished key exchange with sdw3
    [INFO] completed successfully
    使用gpssh-exkeys命令时一定要使用gpadmin身份,因为会在/home/gpadmin/.ssh
    中生成ssh的免密码登录秘钥,
    [[email protected] ~]$ gpssh -f /home/gpadmin/conf/hostlist
    Note: command history unsupported on this machine ...
    => pwd
    [ mdw] /home/gpadmin
    [sdw2] /home/gpadmin
    [sdw1] /home/gpadmin
    [sdw3] /home/gpadmin

    1. 分发所有的安装包到每个值节点
      tar cf greenplum.tar greenplum-db/
      将文件拷贝到每个机器上面
      gpscp -f /home/gpadmin/conf/hostlist greenplum.tar =:/home/gpadmin/
      批量解压
      tar -xf greenplum.tar
      这样所有的节点就完成的安装
    2. 初始化创建数据目录
      [[email protected] conf]$ gpssh -f hostlist
      => mkdir gpdata
      [ mdw]
      [sdw2]
      [sdw1]
      [sdw3]
      => cd gpdata
      [ mdw]
      [sdw2]
      [sdw1]
      [sdw3]
      => mkdir gpmaster gpdatap1 gpdatap2 gpdatam1 gpdatam2
      [ mdw]
      [sdw2]
      [sdw1]
      [sdw3]
      => exit

    每个节点上面配置环境变量
    cat .bash_profile
    source /home/gpadmin/greenplum-db/greenplum_path.sh
    export MASTER_DATA_DIRECTORY=/home/gpadmin/gpdata/gpmaster/gpseg-1
    export PGPORT=6500
    export PGDATABASE=postgres
    source .bash_profile

    配置初始化文件
    [[email protected] conf]$ cat gpinitsystem_config
    ARRAY_NAME="Greenplum"
    MACHINE_LIST_FILE=/home/gpadmin/conf/seg_hosts

    Segment 的名称前缀

    SEG_PREFIX=gpseg

    Primary Segment 起始的端口号

    PORT_BASE=33000

    指定 Primary Segment 的数据目录

    declare -a DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatap1 /home/gpadmin/gpdata/gpdatap2)

    Master 所在机器的 Hostname

    MASTER_HOSTNAME=mdw

    指定 Master 的数据目录

    MASTER_DIRECTORY=/home/gpadmin/gpdata/gpmaster

    Master 的端口

    MASTER_PORT=6500

    指定Bash的版本

    TRUSTED_SHELL=ssh

    Mirror Segment起始的端口号

    CHECK_POINT_SEGMENTS=256
    MIRROR_PORT_BASE=43000

    Primary Segment 主备同步的起始端口号

    REPLICATION_PORT_BASE=34000

    Mirror Segment 主备同步的起始端口号

    MIRROR_REPLICATION_PORT_BASE=44000

    Mirror Segment 的数据目录

    declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatam1 /home/gpadmin/gpdata/gpdatam2)

    初始化数据库
    gpinitsystem -c gpinitsystem_config -h hostlist -s sdw3 -S
    //如无报错就是初始化完成,如果有报错,就需要根据日志提示修改配置,并重新初始化

    [[email protected] conf]$ psql
    psql (8.2.15)
    Type "help" for help.

    postgres=# select version();
    version




    PostgreSQL 8.2.15 (Greenplum Database 4.3.10.0 build commit: f413ff3b006655f14b6b9aa217495ec94da5c96c) on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.4.2 compi
    led on Oct 21 2016 19:36:26
    (1 row)

    错误截图,日志和截图
    节点有部分起来,一部分没有起来。主机资源不够。


    2019-10-28 21:20:25.520556 CST,,,p6788,th-1469757664,,,,0,,,seg-1,,,,,"FATAL","XX000","could not create semaphores: No space left on device (pg_sema.c:132)","Failed system call was semget(43001004, 17, 03600).","This error does not mean that you have run out of disk space.
    It occurs when either the system limit for the maximum number of semaphore sets (SEMMNI), or the system wide maximum number of semaphores (SEMMNS), would be exceeded. You need to raise the respective kernel parameter. Alternatively, reduce PostgreSQL‘s consumption of semaphores by reducing its max_connections parameter (currently 750).
    The PostgreSQL documentation contains more information about configuring your system for PostgreSQL.",,,,,,"InternalIpcSemaphoreCreate","pg_sema.c",132,1 0xb0a80e postgres errstart + 0x4de

    调整配置文件
    vim /home/gpadmin/gpdata/gpdatam1/gpseg6/postgresql.conf
    //每台机器4个segments 都要修改
    max_connections = 200 //原值750 ,调整到200
    shared_buffers = 500MB //原值275 调整到500
    gpstart -a 重启启动集群
    gpstop -u 重新加载配置文件
    #常用操作命令
    gpstate:查看数据库集群状态,示例:gpstate -a
    gpstart:启动数据库集群,示例:gpstart -a
    gpstop:关闭数据库集群,示例:gpstop -a -M fast
    gpssh:远程执行shell命令,示例:gpssh -f hosts -e ‘date‘

    部署参考博文
    https://www.cnblogs.com/dap570/archive/2015/03/21/greenplum_4node_install.html
    https://my.oschina.net/u/876354/blog/1606419

    原文地址:https://blog.51cto.com/13654115/2449505

    时间: 2024-10-14 00:51:41

    Greenplum docker 安装测试环境的相关文章

    docker安装+测试环境的搭建---

    漏洞演练环境docker地址:http://vulhub.org/#/environments/ 环境:kali-linux-2017.2-amd64.iso 一.docker安装 1.先更新一波源:vim etc/apt/sources.list(先按i进行编辑,然后编辑完,shift+esc退出编辑,然后输入:wq 回车,退出编辑) xx源:deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-f

    centos7主要特性 ---docker安装测试

    红帽日前正式发布了企业版Linux 7,满足企业当前对数据中心的需求和对下一代的云服务.Containers.大数据的需求,为用户提供军用级安全以及稳定.易用.高效的管理.社区发行版CentOS 7也已经发布出来了,抢先体验docker1.0. rpm -Uvh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 安装docker      yum install docker-io 启动服务    

    利用docker搭建测试环境--安装

    软件测试过程中,总会碰到测试环境不够用的尴尬情况.即时有了机器还要经历装系统,配置环境,调试等一系列繁琐的问题.虽然市面上也有一些批处理话的工具(如salt,fabric等),但是还是需要实体机器作为支撑,增大成本. 这里介绍一个可以用虚拟测试环境的软件docker http://baike.baidu.com/link?url=L2ViMZm7idMZRx3ymex14SITS99B9UZWSVF_gHtOxmRZH4tvXRObooRUICVewSXf-Rt5q0X4vb2KiZ5EQ6dm

    用docker搭建测试环境--docker的基本操作

    上一篇文章中最后执行了docker pull centos的指令,经过一段时间的等待,会从hub.docker.com上下载docker官方最新的centos的images,接下来熟悉一下docker的一些基本操作.1.查看本地的imagesdocker images 2.从hub.docker.com拉取响应的imagesdocker pull images 3.运行指定的images,并在images里边执行command命令docker run images command 4.查看当前运

    使用docker安装superset环境

    1. dockerI. 安装docker方法一#安装docker wget -qO- https://get.docker.com/ | sh sudo usermod -aG docker loginname # 启动docker 后台服务 sudo service docker start #运行hello-world sudo docker run hello-world #配置镜像加速修改Docker配置文件/etc/default/docker如下:DOCKER_OPTS="--reg

    docker 安装LNRP环境

    安装docker     yum install docker-ce-18.03.1.ce -y启动docker    systemctl start docker加入开机自启   systemctl enable docker配置国内镜像vi /etc/docker/daemon.json{"registry-mirrors": ["http://hub-mirror.c.163.com"]} 1.启动      docker start 容器名 2.删除   

    docker公司测试环境搭建总结

    1.防火墙转发规则: [[email protected] ~]# firewall-cmd --list-allpublic (active) target: default icmp-block-inversion: no interfaces: em1 sources: services: dhcpv6-client ssh ports: 50001/tcp 3306/tcp 5672/tcp 6379/tcp 15672/tcp protocols: masquerade: no for

    同一个Docker swarm集群中部署多版本的测试环境

    先介绍下用到的技术 Docker swarm: Docker官方的集群管理工具,相比kubernetes更加简单,容易入门.https://docs.docker.com/engine/swarm/ Traefik: 一个现代化的反向代理工具,原生支持Docker swarm模式,可以实现swarm的动态代理.https://docs.traefik.io/user-guide/swarm-mode/ 下图展示主要的思路: 在Docker swarm中创建某个测试版本service时,通过设置s

    一个小白的测试环境docker化之路

    本文来自网易云社区 作者:叶子 学习docker搭建测试环境断断续续也有三个多月了,希望记录一下这个过程.常言道,总结过去,展望未来嘛~文章浅显,还望各位大神路过轻拍. 按照国际惯例,先说一下背景: 目前我所处的项目组不断扩大和发展,因此质量保障维度也需要不断扩展.然而多种质量保障维度的开展需要多套测试环境的支持,目前项目组里只有一套测试环境,按照传统方法一步步手工搭建测试环境费时费力,有什么方法可以迅速搭建环境呢?当然是近几年大火的docker啦.可是我是docker小白,之前只是简单地看过几