CentOS7 citus9.5 集群安装及管理

1 所有节点配置 
#------服务安装 服务
yum update -y

#------扩展依赖安装
yum install -y epel-release && yum update -y

#------Add Citus repository for package manager
curl https://install.citusdata.com/community/rpm.sh | sudo bash

# install PostgreSQL with Citus extension
sudo yum install -y citus_95
sudo yum install -y postgis2_95.x86_64

# initialize system database (using RHEL 6 vs 7 method as necessary)
sudo service postgresql-9.5 initdb || sudo /usr/pgsql-9.5/bin/postgresql95-setup initdb

# preload citus extension
echo "shared_preload_libraries = ‘citus‘" | sudo tee -a /var/lib/pgsql/9.5/data/postgresql.conf
#------配置

sudo echo "listen_addresses = ‘*‘" | sudo tee -a /var/lib/pgsql/9.5/data/postgresql.conf
sudo echo "host all all 0.0.0.0/0 trust" | sudo tee -a /var/lib/pgsql/9.5/data/pg_hba.conf

#-------------------------启动服务及开机自启--------------

# start the db server
sudo service postgresql-9.5 restart
# and make it start automatically when computer does
sudo chkconfig postgresql-9.5 on

#------------------------扩展---------------

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

2 主节点配置

#-----配置work节点
sudo echo "worker-101 5432" | sudo -u postgres tee -a /var/lib/pgsql/9.5/data/pg_worker_list.conf
#-----重新加载配置
sudo service postgresql-9.5 reload
#-----查看work节点
sudo -i -u postgres psql -c "SELECT * FROM master_get_active_worker_nodes();"

3 表测试

#-----创建表
CREATE TABLE github_events
(
event_id bigint,
event_type text,
event_public boolean,
repo_id bigint,
payload jsonb,
repo jsonb,
actor jsonb,
org jsonb,
created_at timestamp
);
#-----表分片
SELECT master_create_distributed_table(‘github_events‘, ‘repo_id‘, ‘hash‘);
#-----设定分片个数(16)及每个分片副本数(3)
SELECT master_create_worker_shards(‘github_events‘, 16, 3);

#----插入数据
INSERT INTO github_events VALUES (2489373118,‘PublicEvent‘,‘t‘,24509048,‘{}‘,‘{"id": 24509048, "url": "https://api.github.com/repos/SabinaS/csee6868", "name": "SabinaS/csee6868"}‘,‘{"id": 2955009, "url": "https://api.github.com/users/SabinaS", "login": "SabinaS", "avatar_url": "https://avatars.githubusercontent.com/u/2955009?", "gravatar_id": ""}‘,NULL,‘2015-01-01 00:09:13‘);

#---删除或修改
SELECT master_modify_multiple_shards(
‘DELETE FROM github_events);

4 集群管理
#-----查看work节点
SELECT * from master_get_active_worker_nodes();
#-----元数据查看
SELECT * from master_get_table_metadata(‘github_events‘);
#-----分区查看
SELECT * from pg_dist_partition;
#-----分片查看
SELECT * from pg_dist_shard;
#-----分片分布查看
SELECT * from pg_dist_shard_placement;
#-----移动分片
SELECT master_copy_shard_placement(shardid, ‘good_host‘, 5432, ‘bad_host‘, 5432);

5 加节点及移动分片 v1->v4

5.1 加节点
a 修改pg_worker_list.conf
b 重新载入配置 select pg_reload_conf(); 或 sudo service postgresql-9.5 reload
c 查看work节点 SELECT * from master_get_active_worker_nodes();

5.2 移动分片

a 查看分片元数据
SELECT * from master_get_table_metadata(‘github_events‘);
SELECT * from pg_dist_shard;
SELECT * from pg_dist_shard_placement;
shardid | shardstate | shardlength | nodename | nodeport
---------+------------+-------------+----------+----------
102013 | 1 | 0 | v1 | 5432

shardstate 1(正常) , 3(待修复) , 4(将删除)
b 元数据中加入新分片
INSERT INTO pg_dist_shard_placement(shardid , shardstate , shardlength , nodename , nodeport) VALUES (102021,3,0,v4,5432)
c 移动数据到新分片
SELECT master_copy_shard_placement(102021, ‘v1‘, 5432, ‘v4‘, 5432);
d 标记删除分片,改数据分片此时已经脱离集群,待删除
UPDATE pg_dist_shard_placement SET shardstate = 4 WHERE shardid = 102021 AND nodename = ‘v1‘ AND nodeport = 5432
e 删除原分片数据及元数据
DROP TABLE github_events_shard_id (在对应节点上进行操作)
DELETE FROM pg_dist_shard_placement shardstate = 4

6 主节点的HA
配置参看http://www.cnblogs.com/zhangeamon/p/5465501.html
问题: 应用程序连接从库对数据分片移动后不生效
总结,程序只能连接主数据库,可做读写分离

时间: 10-25

CentOS7 citus9.5 集群安装及管理的相关文章

Centos7.4 kafka集群安装与kafka-eagle1.3.9的安装

Centos7.4 kafka集群安装与kafka-eagle1.3.9的安装 集群规划: hostname Zookeeper Kafka kafka-eagle kafka01 √ √ √ kafka02 √ √ kafka03 √ √ 准备工作: 网络配置 vim /etc/sysconfig/network-scripts/ifcfg-ens33 # kafka01 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=sta

kafka集群安装及管理(一)

一.环境配置 1.系统环境 [[email protected] ~]# cat /etc/centos-release CentOS Linux release 7.4.1708 (Core) 2..安装JAVA环境 yum -y install java java-1.8.0-openjdk-devel #jps需要jdk-devel支持 3.下载kafka [[email protected] ~]# ls kafka_2.11-1.0.0.tgz kafka_2.11-1.0.0.tgz

RedHadoop创始人童小军在北京开讲“Hadoop2.0集群优化与管理”啦!

一.活动介绍 目前Hadoop的应用越来越广泛,开始被很多企业采用,且Hadoop人才十分稀缺和抢手,待遇也远比Java..Net开发好.为了帮助您快速掌握Hadoop的前沿技术,了解企业应用Hadoop的性能优化,CSDN特别邀请您参加我们精心策划的Hadoop2.0运维管理与集群安装监控管理实训班.届时,在历时一天的实训班上,RedHadoop创始人童小军将为您分享Hadoop企业应用成功案例.讲解Hadoop技术架构知识与小窍门. 期待您的加入,名额有限,感兴趣的小伙伴们欲报从速哦!另外,

Linux系统Oracle 12cR2 RAC集群安装与维护管理(12.2)专题

风哥Linux系统Oracle 12cR2 RAC集群安装与维护管理(12.2)专题包括内容: Oracle数据库12cR2(项目实战之一):在Windows上安装Oracle12.2 Oracle数据库12cR2(项目实战之五):Oracle12.2 RAC集群实施与维护 Oracle数据库12cR2(项目实战之六):Oracle12.2 RAC集群管理之增删节点 Oracle数据库12cR2(项目实战之七):Oracle12.2 RAC集群管理之修改IP地址 视频学习地址:http://ed

CentOS7+Hadoop2.7.2(HA高可用+Federation联邦)+Hive1.2.1+Spark2.1.0 完全分布式集群安装

1       VM网络配置... 3 2       CentOS配置... 5 2.1             下载地址... 5 2.2             激活网卡... 5 2.3             SecureCRT. 5 2.4             修改主机名... 6 2.5             yum代理上网... 7 2.6             安装ifconfig. 8 2.7             wget安装与代理... 8 2.8       

CentOS7部署Kubernetes集群

CentOS7部署Kubernetes集群 简介 Kubernetes是什么? Kubernetes一个用于容器集群的自动化部署.扩容以及运维的开源平台. 通过Kubernetes,你可以快速有效地响应用户需求: a.快速而有预期地部署你的应用 b.极速地扩展你的应用 c.无缝对接新的应用功能 d.节省资源,优化硬件资源的使用 我们希望培育出一个组件及工具的生态,帮助大家减轻在公有云及私有云上运行应用的负担. Kubernetes特点: a.可移植: 支持公有云,私有云,混合云,多重云(mult

Spark2.1集群安装(standalone模式)

机器部署 准备三台Linux服务器,安装好JDK1.7 下载Spark安装包 上传spark-2.1.0-bin-hadoop2.6.tgz安装包到Linux(intsmaze-131)上 解压安装包到指定位置tar -zxvf spark-2.1.0-bin-hadoop2.6.tgz -C /home/hadoop/app/spark2.0/ 原文和作者一起讨论:http://www.cnblogs.com/intsmaze/p/6569036.html 微信:intsmaze 配置Spar

weblogic集群安装心得-程序包发布

安装weblogic可以通过命令行或者图形安装 如果安装weblogic集群,可以先分别在两个节点上安装weblogic软件,然后把weblogic控制台起来 注释:被管理节点是集群的,管理节点是单节点(admin) 点击控制台上的envirenment-clusters-lock&edit-new 然后建立节点,在建立节点的过程中选择集群模式即可. -------------------------------------------------------- 程序发布 登录控制台-deplo

rabbitmq-3.5.7 集群安装配置

仅以此文记录哪些被踩过的坑... 试验环境: - CentOS6.7_x64 - rabbitmq-3.5.7 一.安装rabbitmq 这里采用yum方式安装rabbitmq 1.依赖包和编译环境准备: yum -y install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc glibc-devel gcc-c++ autoconf kernel-devel m4 ncurses-devel tk