Linux安装citus(离线、shell)

背景

官网参考地址:
https://docs.citusdata.com/en/v7.4/installation/multi_machine_rhel.html
需要先在有网的环境开启缓存:

#cache ,系统默认是关闭的
#配置文件在:  vim   /etc/yum.conf  ,修改
      keepcache = 1
      gpgcheck  = 0

#cache本地缓存目录:  /var/cache/yum
[root@localhost ~]# mount -o loop  -t iso9660 CentOS-7-x86_64-DVD-1708.iso  /mnt/
#在有网环境安装完后,拷贝走/var/cache/yum目录,放到离线环境即可。

有网环境安装如下:

#1. Add repository
curl https://install.citusdata.com/community/rpm.sh | sudo bash

#2. Install PostgreSQL + Citus and initialize a database

sudo yum install -y citus74_10

sudo service postgresql-10 initdb || sudo /usr/pgsql-10/bin/postgresql-10-setup initdb

echo "shared_preload_libraries = 'citus'" | sudo tee -a /var/lib/pgsql/10/data/postgresql.conf

#3. Configure connection and authentication
sudo vi /var/lib/pgsql/10/data/postgresql.conf


listen_addresses = '*'

sudo vi /var/lib/pgsql/10/data/pg_hba.conf
host    all             all             10.0.0.0/8              trust

#4. Start database servers, create Citus extension 

sudo service postgresql-10 restart
sudo chkconfig postgresql-10 on

sudo -i -u postgres psql -c "CREATE EXTENSION citus;"

下列步骤适合7.3
1. 修改主机名 /etc/hostname

IP hostname
172.16.100.242 master
172.16.100.243 worker1
172.16.100.244 worker2
172.16.100.123 worker3
172.16.100.134 worker4
172.16.100.135 worker5
  1. 下面rpm包来源
    挂载CentOS.7.3.1611.iso
    在有网环境下下载好citus的安装包
    3、下载yum-iso(8G)
    链接:https://pan.baidu.com/s/1L1iqRK_uV1EgD2uHLZZ9wA 密码:b9bk

前提:

sed -i  's/SELINUX=enforce/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
sed -i  's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
find /etc/yum.repos.d/ -type f |xargs sed -i "s/gpgcheck=1/gpgcheck=0/g"
systemctl stop firewalld.service
systemctl disable firewalld.service

init 6

一、安装

每个节点都执行一遍

#!/bin/bash
dir="/root/yum-iso"
if [ ! -d ${dir} ];then
  /usr/bin/mkdir ${dir}
else
  cd ${dir}
fi
/usr/bin/cp  /root/yum-iso/local.repo /etc/yum.repos.d/
cd  /etc/yum.repos.d/
/usr/bin/mkdir /etc/yum.repos.d/bak
/usr/bin/mv    /etc/yum.repos.d/* /etc/yum.repos.d/bak/
/usr/bin/echo  -e "[yum-local]\nname=local\nbaseurl=file:///root/yum-iso/\ngpgcheck=0\nenabled=1" > /etc/yum.repos.d/CentOS-Media.repo
yum  list  >/tmp/yum-list.txt
cd ${dir}
yum install -y vim mlocate zip unzip telnet tree lsof
yum install -y  gcc gcc-c++ boost-date-time-1.53.0-27.el7.x86_64.rpm     boost-serialization-1.53.0-27.el7.x86_64.rpm      boost-system-1.53.0-27.el7.x86_64.rpm   boost-thread-1.53.0-27.el7.x86_64.rpm  cfitsio-3.370-10.el7.x86_64.rpm  epel-release-7-11.noarch.rpm freexl-1.0.5-1.el7.x86_64.rpm  geos36-3.6.2-3.1.rhel7.x86_64.rpm  gssproxy-0.7.0-17.el7.x86_64.rpm   keyutils-1.5.8-3.el7.x86_64.rpm     krb5-libs-1.15.1-19.el7.x86_64.rpm   lcms2-2.6-3.el7.x86_64.rpm   libaec-1.0.2-1.el7.x86_64.rpm  libbasicobjects-0.1.1-29.el7.x86_64.rpm  libcollection-0.7.0-29.el7.x86_64.rpm  libdap-3.13.1-2.el7.x86_64.rpm  libevent-2.0.21-4.el7.x86_64.rpm     libgta-1.0.4-1.el7.x86_64.rpm     libICE-1.0.9-9.el7.x86_64.rpm   libini_config-1.3.1-29.el7.x86_64.rpm    libnfsidmap-0.25-19.el7.x86_64.rpm  libpath_utils-0.2.1-29.el7.x86_64.rpm  libquadmath-4.8.5-28.el7_5.1.x86_64.rpm  libref_array-0.1.5-29.el7.x86_64.rpm   libselinux-2.5-12.el7.x86_64.rpm   libselinux-python-2.5-12.el7.x86_64.rpm   libselinux-utils-2.5-12.el7.x86_64.rpm libsepol-2.5-8.1.el7.x86_64.rpm t-0.2.5-4.el7.x86_64.rpm  libwebp-0.3.0-7.el7.x86_64.rpm  libxslt-1.1.28-5.el7.x86_64.rpm   lrzsz-0.12.20-36.el7.x86_64.rpm fs-utils-1.3.0-0.54.el7.x86_64.rpm  openjpeg2-2.3.0-6.el7.x86_64.rpm   openjpeg-libs-1.5.1-17.el7.x86_64.rpm  policycoreutils-2.5-22.el7.x86_64.rpm   CharLS-1.0-5.el7.x86_64.rpm  poppler-data-0.4.6-3.el7.noarch.rpm  portreserve-0.0.5-11.el7.x86_64.rpm postgresql10-libs-10.4-1PGDG.rhel7.x86_64.rpm proj49-4.9.3-3.rhel7.x86_64.rpm  quota-4.01-17.el7.x86_64.rpm  quota-nls-4.01-17.el7.noarch.rpm   selinux-policy-3.13.1-192.el7_5.3.noarch.rpm   selinux-policy-targeted-3.13.1-192.el7_5.3.noarch.rpm   cp_wrappers-7.6-77.el7.x86_64.rpm   unixODBC-2.3.1-11.el7.x86_64.rpm    xerces-c-3.1.1-8.el7_2.x86_64.rpm   CGAL-4.7-1.rhel7.x86_64.rpm     giflib-4.1.6-9.el7.x86_64.rpm   libgeotiff-1.4.0-1.rhel7.x86_64.rpm   libgfortran-4.8.5-28.el7_5.1.x86_64.rpm ogdi-3.2.0-4.rhel7.x86_64.rpm  openblas-openmp-0.2.20-6.el7.x86_64.rpm  poppler-0.26.5-17.el7_4.x86_64.rpm    postgresql10-10.4-1PGDG.rhel7.x86_64.rpm   postgresql10-contrib-10.4-1PGDG.rhel7.x86_64.rpm postgresql10-server-10.4-1PGDG.rhel7.x86_64.rpm  SFCGAL-libs-1.2.2-1.rhel7.x86_64.rpm  atlas-3.10.1-12.el7.x86_64.rpm blas-3.4.2-8.el7.x86_64.rpm    hdf5-1.8.12-10.el7.x86_64.rpm  citus74_10-7.4.0.citus-1.el7.centos.x86_64.rpm  lapack-3.4.2-8.el7.x86_64.rpm  netcdf-4.3.3.1-5.el7.x86_64.rpm  SFCGAL-1.2.2-1.rhel7.x86_64.rpm  SuperLU-5.2.0-5.el7.x86_64.rpm  arpack-3.1.3-2.el7.x86_64.rpm  armadillo-8.300.0-1.el7.x86_64.rpm  gdal-libs-1.11.4-12.rhel7.x86_64.rpm  postgis24_10-2.4.4-2.rhel7.x86_64.rpm
sudo service postgresql-10 initdb || sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
echo "shared_preload_libraries = 'citus'" | sudo tee -a /var/lib/pgsql/10/data/postgresql.conf
sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/g" /var/lib/pgsql/10/data/postgresql.conf
sed -i "s/127.0.0.1\/32            ident/0.0.0.0\/0   trust/g"  /var/lib/pgsql/10/data/pg_hba.conf
sudo service postgresql-10 restart
sudo chkconfig postgresql-10 on
sudo -i -u postgres psql -c "CREATE EXTENSION citus;" 
sudo -i -u postgres psql -c "CREATE EXTENSION postgis;"
sudo -i -u postgres psql -c "alter user postgres with password 'postgres';" 

在每个节点都执行完上述shell命令后,再往下走:


二、添加节点

  • 查看所有节点
sudo -i -u postgres psql -c "SELECT * from master_get_active_worker_nodes();"
  • 添加节点
sudo -i -u postgres psql -c "SELECT * from master_add_node('worker1', 5432);"
sudo -i -u postgres psql -c "SELECT * from master_add_node('worker2', 5432);"
sudo -i -u postgres psql -c "SELECT * from master_add_node('worker3', 5432);"
sudo -i -u postgres psql -c "SELECT * from master_add_node('worker4', 5432);"
sudo -i -u postgres psql -c "SELECT * from master_add_node('worker5', 5432);"
  • 查看所有节点
sudo -i -u postgres psql -c "SELECT * FROM master_get_active_worker_nodes();"

这里写图片描述
- 删除节点

sudo -i -u postgres psql -c "SELECT * from select master_remove_node('主机名或IP',5432);"

三、建表

  • 先登录
sudo -i -u postgres psql

截图如下:
这里写图片描述
- 建序列

CREATE SEQUENCE public.isla_objectid_seq
    INCREMENT 1
    START 1
    MINVALUE 1
    NO MAXVALUE 
    CACHE 1;
ALTER SEQUENCE public.isla_objectid_seq    OWNER TO postgres;
  • 建表
 CREATE TABLE "public"."test_xiao" (
  "gid" int4 NOT NULL DEFAULT nextval('isla_objectid_seq'::regclass),
  "cname" varchar(160) COLLATE "pg_catalog"."default",
  "geom" "public"."geometry",
  CONSTRAINT "test_mian_pkey" PRIMARY KEY ("gid")
)
;   
CREATE INDEX "xiao_idx" ON "public"."test_xiao" USING gist (
  "geom" "public"."gist_geometry_ops_2d"
);
  • 分发
SELECT create_distributed_table('test_xiao','gid');

截图如下:

这里写图片描述


  • 确认表是否分发到了所有子节点上

这是Master上的:
这里写图片描述
这是worker1节点上的:
这里写图片描述
这是worker2节点上的:
这里写图片描述
这是worker3节点上的:
这里写图片描述
这是worker4节点上的:
这里写图片描述
这是worker5节点上的:
这里写图片描述
可以看出 并不是每个节点上的数据都相同,是散列分布的。
Success!

猜你喜欢

转载自blog.csdn.net/ha_123_qq/article/details/80737804