# greenplum 最新版本6.16.2部署 标签(空格分隔): greenplum系列 --- [toc] ---- ## 一: greenplum 的使用 ### 1.1 greenplum的概述: Greenplum。该公司成立于2003年,2006年推出了首款产品,其主营业务关注在数据仓库和商业智能方面,Greenplum DW/BI软件可以在虚拟化x86服务器上运行无分享(shared-nothing)的大规模并行处理(MPP)架构 当前使用的 OLTP程序中,用户访问一个中心数据库,如果采用SMP系统结构,它的效率要比采用MPP结构要快得多。而MPP系统在决策支持和数据挖掘方面显示了优势, 可以这样说,如果操作相互之间没有什么关系,处理单元之间需要进行的通信比较少,那采用MPP系统就要好,相反就不合适了。 greenplum 的企业版本下载: https://network.pivotal.io/products/vmware-tanzu-greenplum ---- ### 1.2 mpp系统 Greenplum的架构采用了MPP(大规模并行处理)。在 MPP 系统中,每个 SMP节点也可以运行自己的操作系统、数据库等。换言之,每个节点内的 CPU 不能访问另一个节点的内存。 节点之间的信息交互是通过节点互联网络实现的,这个过程一般称为数据重分配(Data Redistribution) 。与传统的SMP架构明显不同,通常情况下, MPP系统因为要在不同处理单元之间传送信息,所以它的效率要比SMP要差一点,但是这也不是绝对的,因为 MPP系统不共享资源,因此对它而言,资源比SMP要多, 当需要处理的事务达到一定规模时,MPP的效率要比SMP好。这就是看通信时间占用计算时间的比例而定,如果通信时间比较多,那MPP系统就不占优势了,相反,如果通信时间比较少, 那MPP系统可以充分发挥资源的优势,达到高效率。 ---- ### 1.3 greenplum的体系架构 ![image_1f9b8di491d7qv2edds187r1n519.png-196.1kB][1] Greenplum 由三部分组成:Master Host、Segment、Interconnect。 Master Host: Master Host 节点是访问系统的入口,数据库侦听进程 (postgres),处理所有用户连接,建立查询计划,协调工作处理过程,管理工具,系统目录表和元数据(数据字典)并不存放任何用户数据。 segment节点: 每段(Segment)存放一部分用户数据,一个系统可以有多段,用户不能直接存取访问,所有对段的访问都经过 Master,数据库监听进程(postgres)监听来自 Master 的连接 Interconnect Greenplum 数据库之间的连接层,进程间协调和管理,基于千兆以太网架构,属于系统内部私网配置,并支持两种协议:TCP or UDP ### 1.4 greenplum的表的分布策略 ![image_1f9b8q16kp00rdjc3d1eo3108a2q.png-221.4kB][2] 在Greenplum 5中,有2种分布策略: 哈希分布,随机分布 在Greenplum 6中,添加了另一个策略: 哈希分布,随机分布,复制分布 数据表的单个行会被分配到一个或多个segment上. ## 二: greenplum 的安装: ### 2.1 greenplum 的下载 greenplum开源版本 其官方手册 https://greenplum.org/documentation/ 其下载介质地址 https://github.com/greenplum-db/gpdb/releases greenplum商业版本(注:下载介质必须要付费,官方手册可以在线或离线看) 其官方手册 http://gpdb.docs.pivotal.io/570/main/index.html 其下载介质地址 https://network.pivotal.io/products/pivotal-gpdb/ 本次安装收费版本: ![image_1f9b915kemh11l92ful1ph8b9d9.png-255.4kB][3] ### 2.2 安装greenplum系统环境准备: 1. 系统: CentOS7.9x64 ---- 2. 部署环境: master 一台 standby 一台 segment 三台 3. 系统主机名配置: cat /etc/hosts ---- 192.168.100.11 node01.flyfish.com 192.168.100.12 node02.flyfish.com 192.168.100.13 node03.flyfish.com 192.168.100.14 node04.flyfish.com 192.168.100.15 node05.flyfish.com 192.168.100.16 node06.flyfish.com 192.168.100.17 node07.flyfish.com 192.168.100.18 node08.flyfish.com 192.168.100.19 node09.flyfish.com ---- 本次安装前五台机器: 部署greenplum 建议生产使用实体机器,greenplum 的最小环境为,master 一台standby 一台 segment 三台 ----- 4. 系统环境初始化:(所有主机) vim /etc/sysctl.conf --- vm.swappiness = 0 kernel.sysrq = 1 net.ipv4.neigh.default.gc_stale_time = 120 # see details in https://help.aliyun.com/knowledge_detail/39428.html net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_announce = 2 # see details in https://help.aliyun.com/knowledge_detail/41334.html net.ipv4.tcp_max_tw_buckets = 5000 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_syn_backlog = 1024 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_slow_start_after_idle = 0 fs.aio-max-nr = 1048576 fs.file-max = 6815744 net.ipv4.ip_local_port_range = 9000 65500 net.ipv4.conf.default.accept_source_route = 0 net.ipv4.tcp_max_syn_backlog = 4096 net.ipv4.conf.all.arp_filter = 1 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586 kernel.sem = 204800 512000 3000 20480 kernel.shmmax = 107374182400000 kernel.shmall = 262144 kernel.shmmni = 4096 kernel.sysrq = 1 kernel.core_uses_pid = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.msgmni = 2048 vm.swappiness = 10 vm.overcommit_memory = 2 vm.overcommit_ratio = 95 vm.zone_reclaim_mode = 0 vm.dirty_expire_centisecs = 500 vm.dirty_writeback_centisecs = 100 vm.dirty_background_ratio = 3 vm.dirty_ratio = 10 #64g- #vm.dirty_background_ratio = 3 #vm.dirty_ratio = 10 #64g+ #vm.dirty_background_ratio = 0 #vm.dirty_ratio = 0 #vm.dirty_background_bytes = 1610612736 #vm.dirty_bytes = 4294967296 ---- sysctl -p ---- 资源句柄数限制: cat >> /etc/security/limits.conf << EOF * soft nproc unlimited * hard nproc unlimited * soft nofile 524288 * hard nofile 524288 * soft stack unlimited * hard stack unlimited * hard memlock unlimited * soft memlock unlimited EOF ![image_1f9ba4ejqedn46126fpsdlbf9.png-186.9kB][4] --- 系统优化启动: echo "session required pam_limits.so" >> /etc/pam.d/login cat /etc/pam.d/login echo "RemoveIPC=no" >> /etc/systemd/logind.conf service systemd-logind restart 系统关闭firewalld,iptables,selinux echo "SELINUX=disabled" > /etc/selinux/config setenforce 0 systemctl stop firewalld.service systemctl disable firewalld.service systemctl status firewalld.service systemctl set-default multi-user.target ---- 系统最大透明页 yum install numactl vim /etc/default/grub GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet numa=off transparent_hugepage=never elevator=deadline" grub2-mkconfig -o /etc/grub2.cfg numastat numactl --show numactl --hardware ![image_1f9bagam319un1r0rihjmqdnc0m.png-46.5kB][5] 硬盘读写优化 XFS: rw,noatime,inode64,allocsize=16m cat /etc/fstab /dev/mapper/centos-root / xfs rw,noatime,inode64,allocsize=16m 0 0 UUID=df6d5e29-33c8-4d43-ae34-5573447ef51e /boot xfs defaults 0 0 UUID=f8097a9d-74ed-45b7-ae1b-c0467cbf235d swap swap defaults 0 0 echo "blockdev --setra 65536 /dev/sda " >> /etc/rc.d/rc.local echo deadline > /sys/block/sda/queue/scheduler ![image_1f9bat4b9fcu3vh1k42a1uu0113.png-61.5kB][6] 系统时间同步问题:(所有节点同步阿里云时间服务器) vim /etc/chrony.conf ---- server ntp1.aliyun.com iburst ---- service chronyd stop service chrnoyd start ![image_1f9bb7u6vad1hk27l5vs2195o1t.png-103.2kB][7] ---- ### 2.3 greenplum 的依赖包 yum -y install openssh-clients gcc gcc-c++ make automake autoconf libtool krb5-devel perl rsync coreutils glib2 ed lrzsz sysstat e4fsprogs xfsprogs ntp readline-devel zlib zlib-devel unzip bzip2 libyaml zip libevent ![image_1f9bb1dui1dvr1sehd2edf1v671g.png-137.7kB][8] ---- ### 2.4 greenplum 安装环境 下载安装包(官方下载) 全部节点配置: 安装目录:/usr/local/greeplum-db mkdir -p /greenplum/gpdata mkdir -p /greenplum/soft 安装rpm 安装 rpm -ivh greenplum-db-6.16.2-rhel7-x86_64.rpm ![image_1f9bbevt61rpd156f4pd1d261pe72a.png-246.9kB][9] ![image_1f9bbhvbs146k18kd1l6r1ipv40f37.png-54.4kB][10] 设置greenplum 的安装用户: (所有节点) useradd gpadmin echo gpadmin |passwd gpadmin --stdin 设置安装目录权限: chown -R gpadmin:gpadmin /usr/local/greenplum* chmod -R 775 /usr/local/greenplum* chmod -R 775 /greenplum chown -R gpadmin:gpadmin /greenplum ![image_1f9bbmas71p4okoo10pj1bpk193f3k.png-106.2kB][11] ![image_1f9bbo552s5d1m0e3rh1gvu1teg4u.png-176.2kB][12] ![image_1f9bbmtpe1an71qle1o1lmu3gv741.png-137.2kB][13] ![image_1f9bboh2o1ajkhlh1t7i1herrva5b.png-135.9kB][14] ![image_1f9bbnel3v6g1c8c1gvb1q0s1o2s4h.png-131.7kB][15] ---- 需要做gpadmin用户的无密钥登录: su - gpadmin ssh-keygen ---一直敲回车到最后 cat id_rsa.pub >> authorized_keys chmod 600 authorized_keys 将所有的公钥导入authorized_keys 分发到 所有的 机器的.ssh/ 下面 然后测试 ![image_1f9bccigpqs1gp2qvl1nb2k1t9.png-183.7kB][16] 设置主机名配置: (在master节点配置) su - gpadmin mkdir /usr/local/greenplum-db/config vim /usr/local/greenplum-db/config/all_hosts.txt ---- node01.flyfish.com node02.flyfish.com node03.flyfish.com node04.flyfish.com node05.flyfish.com ---- ---- vim /usr/local/greenplum-db/config/all_seg.txt --- node03.flyfish.com node04.flyfish.com node05.flyfish.com --- ----- 设置gpadmin的环境变量 (全部节点) su - gpadmin vim .bash_profile ---- source /usr/local/greenplum-db/greenplum_path.sh #source /greenplum/greenplum-cc-6.3.1/gpcc_path.sh export MASTER_DATA_DIRECTORY=/greenplum/gpdata/master/gpseg-1 export PGHOME=/usr/local/greenplum-db export PGPORT=5432 export PGDATABASE=postgres export PGUSER=gpadmin ---- ----- vim .bashrc ---- source /usr/local/greenplum-db/greenplum_path.sh #source /greenplum/greenplum-cc-6.3.1/gpcc_path.sh export MASTER_DATA_DIRECTORY=/greenplum/gpdata/master/gpseg-1 export PGHOME=/usr/local/greenplum-db export PGPORT=5432 export PGDATABASE=postgres export PGUSER=gpadmin ---- source /home/gpadmin/.bashrc source /home/gpadmin/.bash_profile ![image_1f9bcq9oqadq1irsom21cqn1t4cm.png-222.1kB][17] 所有主机测试: gpssh -f /usr/local/greenplum-db/config/all_hosts.txt -e 'ls -ls /greenplum' gpssh -f /usr/local/greenplum-db/config/all_hosts.txt -e 'date' ![image_1f9bd25li1gntr3qt3v1pj97co13.png-233.1kB][18] ![image_1f9bd2rd3f48r2v16rpeeha91g.png-129.9kB][19] 设置主机安装目录: su - gpadmin mkdir -p /greenplum/gpdata/master (主节点与备份节点配置) gpssh -f /usr/local/greenplum-db/config/all_hosts.txt -e 'mkdir -p /greenplum/gpdata/primary' gpssh -f /usr/local/greenplum-db/config/all_hosts.txt -e 'mkdir -p /greenplum/gpdata/mirror' ![image_1f9bd5h2l103u2ru11ru1bqc11is1t.png-195.3kB][20] 集群节点安装 vim /usr/local/greenplum-db/config/gpinitsystem_config --- ARRAY_NAME="greenplum" SEG_PREFIX=gpseg PORT_BASE=55000 declare -a DATA_DIRECTORY=(/greenplum/gpdata/primary /greenplum/gpdata/primary /greenplum/gpdata/primary) MASTER_HOSTNAME=node01.flyfish.com MASTER_DIRECTORY=/greenplum/gpdata/master MASTER_PORT=5432 MACHINE_LIST_FILE=/usr/local/greenplum-db/config/all_seg.txt TRUSTED_SHELL=ssh CHECK_POINT_SEGMENTS=8 ENCODING=UNICODE MIRROR_PORT_BASE=56000 REPLICATION_PORT_BASE=57000 MIRROR_REPLICATION_PORT_BASE=58000 declare -a MIRROR_DATA_DIRECTORY=(/greenplum/gpdata/mirror /greenplum/gpdata/mirror /greenplum/gpdata/mirror) ---- ![image_1f9bd8v521b1fggvm8v1ls2116d2a.png-159.4kB][21] 初始化集群: vim gpinit.sh ---- gpinitsystem -c /usr/local/greenplum-db/config/gpinitsystem_config -a -h /usr/local/greenplum-db/config/all_seg.txt -s node02.flyfish.com -D -B 2 ---- chmod +x gpinit.sh ./gpinit.sh ![image_1f9bdeldca69110qc6i12kj4862n.png-43.3kB][22] 初始化到最后: ![image_1f9bdfbe5v0p19na1llf13cb3ma34.png-324.1kB][23] ![image_1f9bdgeba1fbk149j1k3mh8jnvh3h.png-100kB][24] 查看GP 的 分段情况: select * from gp_segment_configuration order by content asc,dbid; ![image_1f9bdin14195ud5pqmh6if1al3u.png-297.6kB][25] ![image_1f9bdk1c0kfdtio2q1opq1hbi4b.png-162.2kB][26] ![image_1f9bdknvm13l217snikc1gju6l64o.png-377.6kB][27] [1]: http://static.zybuluo.com/zhangyy/ryuh9tagiw15cjidnn18pqm8/image_1f9b8di491d7qv2edds187r1n519.png [2]: http://static.zybuluo.com/zhangyy/6rxwouixtaky0zna4ruz4p9d/image_1f9b8q16kp00rdjc3d1eo3108a2q.png [3]: http://static.zybuluo.com/zhangyy/cnioujda2d96qqek663whx54/image_1f9b915kemh11l92ful1ph8b9d9.png [4]: http://static.zybuluo.com/zhangyy/l488u6uhher65yiydkxq952c/image_1f9ba4ejqedn46126fpsdlbf9.png [5]: http://static.zybuluo.com/zhangyy/dscv8eq9wuztmwfwuj1jrvxr/image_1f9bagam319un1r0rihjmqdnc0m.png [6]: http://static.zybuluo.com/zhangyy/cueymse6mlrma0wybwwkjb3o/image_1f9bat4b9fcu3vh1k42a1uu0113.png [7]: http://static.zybuluo.com/zhangyy/ys3rrhbaocxxngwj9m6lk3td/image_1f9bb7u6vad1hk27l5vs2195o1t.png [8]: http://static.zybuluo.com/zhangyy/zphedg5gkk9w1tjdts2pfq3i/image_1f9bb1dui1dvr1sehd2edf1v671g.png [9]: http://static.zybuluo.com/zhangyy/1grdpdu8d3340saybdfxi03f/image_1f9bbevt61rpd156f4pd1d261pe72a.png [10]: http://static.zybuluo.com/zhangyy/wo7wkpxf1ejjn7gpp3q356ji/image_1f9bbhvbs146k18kd1l6r1ipv40f37.png [11]: http://static.zybuluo.com/zhangyy/6m90zvsau9rjzb4xqttw6gnk/image_1f9bbmas71p4okoo10pj1bpk193f3k.png [12]: http://static.zybuluo.com/zhangyy/lnleljivbcys6tv5zb5qbb0b/image_1f9bbo552s5d1m0e3rh1gvu1teg4u.png [13]: http://static.zybuluo.com/zhangyy/ltt4o2g1wueeuyqbg2oxcqeh/image_1f9bbmtpe1an71qle1o1lmu3gv741.png [14]: http://static.zybuluo.com/zhangyy/q4dp9f6b18256t3kx635wl4m/image_1f9bboh2o1ajkhlh1t7i1herrva5b.png [15]: http://static.zybuluo.com/zhangyy/4i02576qn31htz76xey07a0o/image_1f9bbnel3v6g1c8c1gvb1q0s1o2s4h.png [16]: http://static.zybuluo.com/zhangyy/v59xc9dpyqo68omj7hvq9xdc/image_1f9bccigpqs1gp2qvl1nb2k1t9.png [17]: http://static.zybuluo.com/zhangyy/zxlm66iptupdyuy1q6k6nvaj/image_1f9bcq9oqadq1irsom21cqn1t4cm.png [18]: http://static.zybuluo.com/zhangyy/xntdygxgs8lov1yp4jz36zqq/image_1f9bd25li1gntr3qt3v1pj97co13.png [19]: http://static.zybuluo.com/zhangyy/8hy1cdfymvr3mkkltebqo36q/image_1f9bd2rd3f48r2v16rpeeha91g.png [20]: http://static.zybuluo.com/zhangyy/tqc9ikcddmkqjwnk3wysoc11/image_1f9bd5h2l103u2ru11ru1bqc11is1t.png [21]: http://static.zybuluo.com/zhangyy/d9hg12mq7m4hxv259uea01d4/image_1f9bd8v521b1fggvm8v1ls2116d2a.png [22]: http://static.zybuluo.com/zhangyy/x5fgdmx8ng1dl5yu4605nfbe/image_1f9bdeldca69110qc6i12kj4862n.png [23]: http://static.zybuluo.com/zhangyy/r91pr3i7vuf2jf2hc7h0ljbv/image_1f9bdfbe5v0p19na1llf13cb3ma34.png [24]: http://static.zybuluo.com/zhangyy/s0z35t3jae1zmxa91dq9j9b8/image_1f9bdgeba1fbk149j1k3mh8jnvh3h.png [25]: http://static.zybuluo.com/zhangyy/zkjq184jb6q6ys1rtd54fl66/image_1f9bdin14195ud5pqmh6if1al3u.png [26]: http://static.zybuluo.com/zhangyy/gza2xjdooeikjhwxc5qmv98c/image_1f9bdk1c0kfdtio2q1opq1hbi4b.png [27]: http://static.zybuluo.com/zhangyy/6qqvdaphii5oha80dizhfb4i/image_1f9bdknvm13l217snikc1gju6l64o.png
微信关注我们
原文链接:https://blog.51cto.com/flyfish225/2954821
转载内容版权归作者及来源网站所有!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
相关文章
发表评论
资源下载
更多资源优质分享App
近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。
Mario
马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。
Apache Tomcat
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Eclipse
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。