一,vertica

 

使用方法:

#  To run without a persistent datastore
docker run -p 5433:5433  sumitchawla/vertica

#To run with a persistent datastore
docker run -p 5433:5433 -d -v /path/to/vertica_data:/home/dbadmin/docker sumitchawla/vertica

连接参数

Default DB Name - docker

Default User - dbadmin

Default Password (NO PASSWORD) -



######
vertca   镜像

https://github.com/bluelabsio/docker-vertica  需要下载rpm


下载vertica  客户端

https://www.vertica.com/download/vertica/

https://softwaresupport.softwaregrp.com/   下载页面

二,greenplum

https://github.com/greenplum-db/gpdb/releases 下载页面(开源下载,官网需登录)
https://hub.docker.com/r/kevinmtrowbridge/greenplumdb_singlenode  (镜像直接用)
https://github.com/kevinmtrowbridge/greenplumdb_singlenode_docker
https://github.com/kevinmtrowbridge/greenplumdb_singlenode_docker/blob/master/Dockerfile

单机版安装
https://www.jianshu.com/p/513935550350
greenplum  源码安装
https://yq.aliyun.com/articles/609855#

单机安装的记录:z重要

容器内操作
   root
   vi   /etc/sysctl.conf
    3  vi /etc/security/limits.conf
    4  sysctl -p
    5  yum    install  wget 
    6  wget https://github.com/greenplum-db/gpdb/releases/download/6.0.0/greenplum-db-6.0.0-rhel7-x86_64.rpm
    7  yum  localinstall  greenplum-db-6.0.0-rhel7-x86_64.rpm 
    8  ip a s
    9  find  /  -name "*greenplum*"
   10  vi  /etc/hosts
   11  groupadd gpadmin
   12  useradd -g gpadmin gpadmin
   13  passwd gpadmin
   14  chown -R gpadmin.gpadmin   /usr/local/greenplum-db
   15  cd /usr/local/greenplum-db
   16  ll
   17  cd 
   18  su - gpadmin
   19  vi  /etc/sysconfig/network
   20  su - gpadmin
   21  \cp -R -f /usr/lib64/python2.7/site-packages/.   /usr/local/greenplum-db/lib/python//
   22  echo "RemoveIPC=no" >> /etc/systemd/logind.conf
   23  su - gpadmin
   24  ss  -tanl 
   25   yum install -y net-tools which openssh-clients openssh-server less zip unzip iproute
   26  /usr/sbin/sshd
   27  ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
   28  ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
   29  ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
   30  /usr/sbin/sshd
   31  ss  -tanl 
   32  su  -  gpadmin 
   33  ss -tanl 
   34  history
   
   gpaadmin操作
   
   mkdir -p /home/gpadmin/masterdata
    2  mkdir -p /home/gpadmin/segmentdata
    3  mkdir -p /home/gpadmin/segmentmirror
    4  vi   /home/gpadmin/all_hosts
    5  vi  /home/gpadmin/seg_hosts
    6  cd  /home/gpadmin/
    7  vi  .bashrc
    8  ll
    9  vi  /home/gpadmin/gpinitsystem_config
   10  cat    .bashrc 
   11  . .bashrc
   12  gpssh-exkeys -f /home/gpadmin/all_hosts
   13  gpinitsystem -c /home/gpadmin/gpinitsystem_config
   14  ss  -tanl 
   15  history 
   
   docker  run  -d  -p 5432:5432  --rm  -h "mdw"      greenplum-v2 
   使用容器生成greenplum后的操作
   vi   /etc/hosts    
   172.17.0.2      mdw   sdw 
   启动sshd    /usr/sbin/sshd 
    
   su  - gpadmin  
   .  .bashrc   
   gpstart 



使用小例子

su  -  gpadmin 

psql  -d gpmaster 
psql: FATAL:  database "gpmaster" does not exist

创建数据库:
createdb  gpadmin -E utf-8

登录psql  -d gpadmin

开放远程权限
cd $MASTER_DATA_DIRECTORY/     masterdata目录(gpseg-1内)

vi pg_hba.conf

host     testDB      gpadmin         192.168.96.1/32    md5

通过gpstop -u命令使配置生效


通过其他机器登录数据库

$ psql -h192.168.96.128 -p5432 -d testDB -Ugpadmin
单机安装(容器安装的重要节点时刻)
系统:centos7   greenplum版本:greenplum-db-6.0.0-rhel7-x86_64.rpm

使用root用户操作:
一,前期准备
关闭防火墙
systemctl disable firewalld.service
systemctl enable firewalld.service
关闭selinux 
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config

配置网络与内存参数
vim /etc/sysctl.conf
加入以下内容
net.ipv4.ip_forward = 0
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 1
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.sem = 250 64000 100 512
kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000000000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.core.netdev_max_backlog = 10000
vm.overcommit_memory = 2
net.ipv4.conf.all.arp_filter = 1


vim  /etc/security/limits.conf

* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

参数生效
sysctl  -p  

确定sshd 启动正常  ss  -tanl 看端口

二,安装greenplum  

安装依赖包(可能还有,使用yum  -y localinstall xxxx.rpm  自动解决依赖问题)
yum install -y net-tools which openssh-clients openssh-server less zip unzip iproute  rsync openssl  openssh  perl  bzip2 apr  apr-util  ed  libevent-devel   libyaml  


rpm  -ivh    greenplum-db-6.0.0-rhel7-x86_64.rpm     缺少依赖装之

默认安装在 /usr/local/greenplum-db/
 
三,配置单机模式
使用root 操作
1,配置hosts解析
vim /etc/hosts
  
10.1.5.10 mdw sdw
注:10.1.5.10是虚拟机的ip地址,使用127.0.0.1 不成功

2,创建用户
groupadd gpadmin
useradd -g gpadmin gpadmin
passwd gpadmin    设置简单的密码

3,改变greenplum安装目录的用户和用户组
chown -R gpadmin.gpadmin   /usr/local/greenplum-db/

4,切换到gpadmin账户下,在家目录下建立master和segment的数据存放目录。你也可以自行设定数据存放目录,如果你不是以gpadmin建立的目录,还需要修改目录的用户和用户组,最好是建在家目录下

su - gpadmin
mkdir -p /home/gpadmin/masterdata
mkdir -p /home/gpadmin/segmentdata
mkdir -p /home/gpadmin/segmentmirror

以下是su - gpadmin 后的操作
5,创建包含所有主机的文件all_hosts
vim /home/gpadmin/all_hosts
mdw
sdw

6,建包含segment主机名的文件
vim /home/gpadmin/seg_hosts
sdw

7,更改主机的名称
这里使用root 修改(以下都执行)
hostnamectl set-hostname "mdw"
hostname mdw
vim /etc/sysconfig/network
mdw

退出服务器重新登录


8,将MASTER_DATA_DIRECTORY加入Master主机环境中,修改gpadmin用户的.bashrc  
这里使用gpadmin 用户登录后操作

cd /home/gpadmin
vim .bashrc
export MASTER_DATA_DIRECTORY=/home/gpadmin/masterdata/gpseg-1       #(配置的masterdata路径)
source /usr/local/greenplum-db/greenplum_path.sh                        #安装的greenplum路径

忘记在哪里可以搜索

9,时间同步
因为master和segment是在同一台机器,所以不需要做时间同步,如果不在同一台机器,需要做时间同步

10,python模块转移,防止提示失败
\cp -R -f /usr/lib64/python2.7/site-packages/. /data/program/gpsql/lib/python/

11,centos 7执行(原因未知)
echo "RemoveIPC=no" >> /etc/systemd/logind.conf
systemctl restart  systemd-logind.service

12,编辑gp初始化配置文件,
vim /home/gpadmin/gpinitsystem_config
添加以下内容
ARRAY_NAME="EMC Greenplum DW"
SEG_PREFIX=gpseg
PORT_BASE=33000
declare -a DATA_DIRECTORY=(/home/gpadmin/segmentdata)
MASTER_HOSTNAME=mdw
MASTER_DIRECTORY=/home/gpadmin/masterdata
MASTER_PORT=5432
MACHINE_LIST_FILE=/home/gpadmin/seg_hosts
TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=8
ENCODING=UNICODE
MIRROR_PORT_BASE=43000
REPLICATION_PORT_BASE=34000
MIRROR_REPLICATION_PORT_BASE=44000
declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/segmentmirror)

有多个segment,declare就多加几个路径   参考其他资料

13,建立信任关系,主要为了免密码登录的麻烦,若果提示命令不存在,先source一下.bashrc

gpssh-exkeys -f /home/gpadmin/all_hosts

如果tab 键无法搞出该命令,可能环境变量未生效

14,初始化数据库

gpinitsystem -c /home/gpadmin/gpinitsystem_config

15,等待log出现,中间需要按y  

完成后可以gpstop  
再执行  gpstart   报成功后完成


集群模式(未做)
:参考他的做吧



如果在容器内操作,需要注意的是容器内无sshd服务,所以安装完openssh-server后使用/usr/sbin/sshd  后启动sshd服务,
使用ss -tanl  查看端口信息


容器安装参考了这个网址:
http://gitop.cc/posts/install-greenplum-in-docker/

由于容器内主机名随机,需要起容器时指定,然后再进入容器内部操作添加主机名,起动sshd,启动greenplum  ,比较麻烦。