• [原]greenplum安装详细过程


      今天又帮其他项目装了一遍GP,加上之前的两次,这是第三次了,虽然每次都有记录,但这次安装还是发现漏写了一些步骤,在此详细记录一下,需要的童鞋可以借鉴。

    1、准备

      这里准备了4台服务器,1台做master,1台做standby,4台都做存储,为了保密真实的IP地址和主机名都换成“艺名”了。

    OS:Red Hat Enterprise Linux Server release 6.4 (Santiago) 
    GP:greenplum-db-4.3.6.2-build-1-RHEL5-x86_64.zip
    JDK:1.7+

    192.168.1.100  bj-gp-node1(segment master)
    192.168.1.101  bj-gp-node2(segment standby)
    192.168.1.102  bj-gp-node3(segment)
    192.168.1.103  bj-gp-node4(segment)

    greenplum官网下载地址:http://gpn.greenplum.com/download.php (注:需要注册后才能下载)

    2、系统参数配置

      系统参数配置的修改需要在每个节点服务器上执行

    2.1.修改Linux内核参数

    [root@bj-gp-node1 ~]# vi /etc/sysctl.conf
    # Kernel sysctl configuration file for Red Hat Linux
    #
    # For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
    # sysctl.conf(5) for more details.
    #
    # Use '/sbin/sysctl -a' to list all possible parameters.
    
    # Controls IP packet forwarding
    net.ipv4.ip_forward = 0
    
    # Controls source route verification
    net.ipv4.conf.default.rp_filter = 1
    
    # Do not accept source routing
    net.ipv4.conf.default.accept_source_route = 0
    
    # Controls the System Request debugging functionality of the kernel
    kernel.sysrq = 1
    
    # Controls whether core dumps will append the PID to the core filename.
    # Useful for debugging multi-threaded applications.
    kernel.core_uses_pid = 1
    
    # Controls the use of TCP syncookies
    net.ipv4.tcp_syncookies = 1
    
    # Disable netfilter on bridges
    #net.bridge.bridge-nf-call-ip6tables = 0
    #net.bridge.bridge-nf-call-iptables = 0
    #net.bridge.bridge-nf-call-arptables = 0
    
    # Controls the default maxmimum size of a mesage queue
    kernel.msgmnb = 65536
    
    # Controls the maximum size of a message, in bytes
    kernel.msgmax = 65536
    kernel.msgmni = 2048
    
    kernel.sem = 250 512000 100 2048
    
    # Controls the maximum shared segment size, in bytes
    #kernel.shmmax = 68719476736
    kernel.shmmax = 500000000
    kernel.shmmni = 4096
    
    # Controls the maximum number of shared memory segments, in pages
    #kernel.shmall = 4294967296
    kernel.shmall = 4000000000
    
    net.ipv4.tcp_tw_recycle=1
    net.ipv4.tcp_max_syn_backlog=4096
    net.ipv4.ip_local_port_range = 1025 65535
    net.core.netdev_max_backlog=10000
    vm.overcommit_memory=2
    net.ipv4.conf.all.arp_filter = 1
    net.core.rmem_max = 2097152
    net.core.wmem_max = 2097152

    2.2.修改Linux最大限制

    [root@bj-gp-node1 ~]# vi /etc/security/limits.conf
    #greenplum configs
    * soft nofile 65536
    * hard nofile 65536
    * soft nproc 131072 
    * hard nproc 131072

    2.3.I/O调整优化

    [root@bj-gp-node1 ~]# vi /boot/grub/menu.lst
    #greenplum configs
    elevator=deadline

    2.4.添加所有节点到HOST

    [root@bj-gp-node1 ~]# vi /etc/hosts
    192.168.1.100  bj-gp-node1
    192.168.1.101  bj-gp-node2
    192.168.1.102  bj-gp-node3
    192.168.1.103  bj-gp-node4

    2.5.关闭防火墙

    [root@bj-gp-node1 ~]# chkconfig --list iptables
    [root@bj-gp-node1 ~]# chkconfig --level 0123456 iptables off

    2.6.设置SELINUX

    [root@bj-gp-node1 ~]# vi /etc/selinux/config
    SELINUX=disabled

    2.7.重启系统使配置生效

    [root@bj-gp-node1 ~]# reboot

    3、GP安装

      GP的安装操作都是在主节点master上执行的

    3.1.创建gpadmin用户

    [root@bj-gp-node1 ~]# useradd gpadmin
    [root@bj-gp-node1 ~]# passwd gpadmin

    3.2.设置gpadmin用户环境

    [gpadmin@bj-gp-node1 ~]$ cd /home/gpadmin
    [gpadmin@bj-gp-node1 ~]$ vi .bashrc
    [gpadmin@bj-gp-node1 ~]$ vi .bash_profile

    .bashrc和.bash_profile最后都添加下面两行
    source /usr/local/greenplum-db/greenplum_path.sh 
    export MASTER_DATA_DIRECTORY=/data1/gpdata/master/gpseg-1

    设置完后记得source一下使其立即生效

    3.3.上传并解压安装包

    将greenplum-db-4.3.6.2-build-1-RHEL5-x86_64.zip上传至master的/opt/目录下

    [root@bj-gp-node1 opt]# /bin/bash greenplum-db-4.3.6.2-build-1-RHEL5-x86_64.bin

    按提示输入回车或yes 这一步会将安装包解压到/usr/local/下,并建立软连接greenplum-db

    3.4.准备节点服务器信息文件

    后面的批量安装会用到这两个文件,如果all_host和all_segment内容一样,可以只创建一个文件

    [root@bj-gp-node1 opt]# mkdir -p /opt/gpinit/
    [root@bj-gp-node1 gpinit]# touch all_host
    [root@bj-gp-node1 gpinit]# touch all_segment
    all_host和all_segment内容:
    bj-gp-node1
    bj-gp-node2
    bj-gp-node3
    bj-gp-node4

    3.5.建立节点服务器间的信任

    [root@bj-gp-node1 local]# gpssh-exkeys -f /opt/gpinit/all_host

    按照提示输入root密码,记住这一步不能输入gpadmin的密码,因为批量安装时需要在/usr/local下创建目录,需要root权限

    3.6.批量安装

    [root@bj-gp-node1 local]# gpseginstall -f /opt/gpinit/all_host -u gpadmin -p gpadmin

    这一步其实就是将master上的greenplum打包通过scp命令传到all_host中的主机上,并赋予目录gpadmin的权限

    3.7.检查批量安装情况

    [root@bj-gp-node1 local]# gpssh -f /opt/gpinit/all_host -e ls -l $GPHOME

    返回结果中各节点目录一致则成功

    3.8.创建存储目录

    master
    [root@bj-gp-node1 local]# mkdir -p /data1/gpdata/master
    [root@bj-gp-node1 local]# chown gpadmin:gpadmin /data1/gpdata/master
    
    segment
    [root@bj-gp-node1 local]# gpssh -f /opt/gpinit/all_host -e 'mkdir -p /data1/gpdata/primary'
    [root@bj-gp-node1 local]# gpssh -f /opt/gpinit/all_host -e 'chown gpadmin:gpadmin /data1/gpdata/primary'

    mirror
    [root@bj-gp-node1 local]# gpssh -f /opt/gpinit/all_segment -e 'mkdir -p /data1/gpdata/mirror'
    [root@bj-gp-node1 local]# gpssh -f /opt/gpinit/all_segment -e 'chown gpadmin:gpadmin /data1/gpdata/mirror'
     

    3.9.设置时钟同步

    vi /etc/ntp.conf 在server第一行添加下面两行 
    server 192.168.1.1 server 192.168.1.2 重启ntpd服务 /etc/init.d/ntpd restart 查看ntp同步情况 ntpq -p 使ntpd服务重启服务器后也启动 chkconfig --level 0123456 ntpd on

    3.10.创建GP初始化文件

    [gpadmin@bj-gp-node1 ~]$ mkdir /home/gpadmin/gpconfigs
    [gpadmin@bj-gp-node1 ~]$ cp /usr/local/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_config /home/gpadmin/gpconfigs/gpinitsystem_config
    [gpadmin@tj-soc-c04-csfb1 gpconfigs]$ chmod 775 gpinitsystem_config

    3.10修改GP初始化文件

    [gpadmin@bj-gp-node1 gpconfigs]$ vi gpinitsystem_config 
    

    # FILE NAME: gpinitsystem_config

    
    

    # Configuration file needed by the gpinitsystem

    
    

    ################################################
    #### REQUIRED PARAMETERS
    ################################################

    
    

    #### Name of this Greenplum system enclosed in quotes.
    ARRAY_NAME="BJ Greenplum DW"

    
    

    #### Naming convention for utility-generated data directories.
    SEG_PREFIX=gpseg

    
    

    #### Base number by which primary segment port numbers
    #### are calculated.
    PORT_BASE=40000

    
    

    #### 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=(/data1/gpdata/primary /data1/gpdata/primary)

    
    

    #### OS-configured hostname or IP address of the master host.
    MASTER_HOSTNAME=bj-gp-node1

    
    

    #### File system location where the master data directory
    #### will be created.
    MASTER_DIRECTORY=/data1/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

    
    

    ################################################
    #### OPTIONAL MIRROR PARAMETERS
    ################################################

    
    

    #### Base number by which mirror segment port numbers
    #### are calculated.
    MIRROR_PORT_BASE=50000

    
    

    #### Base number by which primary file replication port
    #### numbers are calculated.
    REPLICATION_PORT_BASE=41000

    
    

    #### Base number by which mirror file replication port
    #### numbers are calculated.
    MIRROR_REPLICATION_PORT_BASE=51000

    
    

    #### File system location(s) where mirror segment data directories
    #### will be created. The number of mirror locations must equal the
    #### number of primary locations as specified in the
    #### DATA_DIRECTORY parameter.
    declare -a MIRROR_DATA_DIRECTORY=(/data1/gpdata/mirror /data1/gpdata/mirror)

    
    


    ################################################
    #### OTHER OPTIONAL PARAMETERS
    ################################################

    
    

    #### Create a database of this name after initialization.
    DATABASE_NAME=bj_gp

    
    

    #### Specify the location of the host address file here instead of
    #### with the the -h option of gpinitsystem.
    #MACHINE_LIST_FILE=/home/gpadmin/gpconfigs/hostfile_gpinitsystem

     

    3.11.初始化GP

    [gpadmin@bj-gp-node1 ~]$ gpinitsystem -c /home/gpadmin/gpconfigs/gpinitsystem_config -h /opt/gpinit/all_host
    中间需要输入一次:Y

    如果没有报ERROR,GP数据库就安装好了。下面讲一些附加操作

    4、附加项

    4.1增加standby

    一个gp集群只有一个master肯定会让人不放心,还好有备用,当master宕掉后,会自动启用standby作为master,下面来看一下standby怎么添加

    在standby服务器上执行
    [root@bj-gp-node2 ~]# mkdir /data1/gpdata/master [root@bj-gp-node2 ~]# chown gpadmin:gpadmin /data1/gpdata/master

    在master服务器上执行
     
    [gpadmin@bj-gp-node1 ~]$ gpinitstandby -s bj-gp-node2
    中间输入一次Y

    4.2.增加mirror

    mirror就是镜像,也叫数据备份。mirror对于数据存储来说很重要,因为我们的服务器指不定什么时候出毛病,有mirror就好很多了,因为两台存储节点同时宕掉的几率还是很小的。如果前面在GP初始化文件里忘记配置mirror了,请按照下面的方法添加

    [gpadmin@bj-gp-node1 ~]$ gpaddmirrors -p 1000
    运行过程中需要输入两次mirror路径:/data1/gpdata/mirror

    4.3.设置访问权限

    打开/data1/gpdata/master/gpseg-1/pg_hba.conf 按照最下面的格式添加客户端ip或网段

    #user define
    host    all     all     192.168.1.0/24   trust
    host    all     all     127.0.0.1/28    trust

    4.4.访问方式

    可以通过gpAdmin桌面客户端来访问,也可以用命令行来访问,下面来说一下命令行访问的方式,loach是后面添加的用户

    [gpadmin@bj-gp-node1 ~]$ psql -d tj_csfb -h bj-gp-node1 -p 5432 -U gpadmin
    [gpadmin@bj-gp-node1 ~]$ psql -d tj_csfb -h bj-gp-node1 -p 5432 -U loach

    4.5.创建用户

    通过命令行登录以后,执行下面的命令

    CREATE ROLE loach WITH LOGIN;
    ALTER ROLE loach WITH PASSWORD 'loach';
    心有多大,林子就有多大
  • 相关阅读:
    微信公众号 sign类
    serlvet HttpServletRequest
    servlet setCharacterEncoding setHeader 设置字符区别
    java 读取word
    java 使用Java生成word文档
    java io 读取写文件
    异步Promise及Async/Await可能最完整入门攻略
    React和Vue组件间数据传递demo
    Vue基础指令集锦
    vue 关于数组和对象的更新
  • 原文地址:https://www.cnblogs.com/liuyungao/p/5689588.html
Copyright © 2020-2023  润新知