TBase开源版V2.1.0 集群搭建部署完整版
一、闲扯
公司有项目要用到TBase数据库集群,本来是我们组一个前辈搭好的,然后dn1和dn2总是没法同步,或者说是同步不完全(dn1建的表写入数据,dn2里会有不完整的表结构,但是没有其他的,后来找到原因是最大连接数的配置问题),一直找不到原因,项目经理大笔一挥,重新部署一套。然而我们组那个前辈去重保某个重要项目了,我赶鸭子上架,以前用都不会用,现在要两天内搭一套集群出来,还得带负载均衡。
其实说起来并不困难,主要是难在我经验过少,又是踩坑无数的学习过程,现在我搭的集群已经开始正常运行了,这篇文章拿来做个记录。
二、前期准备
1. 什么是TBase
TBase是腾讯基于postgresql数据库二次开发的,其他的大家自行百度或谷歌,大把大把的资料。
2. 集群规划
使用两台虚拟机搭建1GTM主+1GTM备+2CN主(CN主之间对等,因此无需备CN)+2DN主+2DN备的集群,该集群为具备容灾能力的最小配置。机器IP规划为
测试机01:172.16.8.247 tbase01
测试机02:172.16.8.248 tbase02
官方文档和腾讯内部文档要求资源给8C16G+50G系统盘+CentOS 7.3最小化+3.10内核,我自己的测试环境里还有TDSQL集群,资源确实不够,于是开了两台2C16G的虚拟机,其他都一样。各节点规划为:
3. 基本配置
PS:虚拟机安装及基本网络配置等过程略。
3.1 安装基本依赖包及简单优化
更换国内yum源参考:
CentOS-7系统配置华为云yum源
由于是CentOS 7.3最小化安装,所以需要补充安装一些依赖包
yum -y install gcc gcc-c++ pcre-devel openssl-devel #基本环境依赖
yum -y install net-tools vim unzip wget lrzsz #部分常用工具
tbase所需依赖包
yum install -y bison.x86_64 bison-devel.x86_64 flex.x86_64 flex-devel.x86_64
yum install -y readline readline-dev
yum install -y readline.x86_64 readline-devel.x86_64
yum install -y zlib.x86_64 zlib-devel.x86_64
yum install -y openssl-devel
yum install -y uuid uuid-devel
yum install -y git.x86_64
ssh连接优化:
vim /etc/ssh/sshd_config
:set nu #使vim编辑器显示文件行数
修改以下内容:
GSSAPIAuthentication no
UseDNS no
3.2 修改主机名,配置账号
为了方便,我把247改成tbase01,把248改成tbase02
hostname #查看当前主机名
hostnamectl set-hostname tbase01 #修改主机名为tbase01
hostname #查看当前主机名
修改好后xshell重新连接,显示的机器名就是你刚刚修改的了。
为了方便看,可以改一下字体颜色,具体操作移步这篇:https://blog.csdn.net/aidream1239/article/details/107810095
3.3 创建tbase用户并配置权限
创建tbase用户及用户目录,并添加密码(必须有,而且两台都要)
mkdir /data #新建文件夹
useradd -d /data/tbase tbase #添加新用户并指向/data/tbase
passwd tbase #给tbase用户添加密码
chown -R tbase:tbase /data #这一步权限涉及后面分发二进制包等,很重要
3.4 配置虚拟机互信
(注意:除第①和第②步在root下进行,其他操作均在tbase用户下进行,且需提前关闭firewalld和selinux)
① root下,两台机器分别编辑/etc/ssh/sshd_config文件:
vim /etc/ssh/sshd_config
:set nu #使vim编辑器显示文件行数
修改以下内容:
RSAAuthentication yes #启用rsa认证,如果sshd_config里没有这一项可以忽略
PubkeyAuthentication yes #启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys #公钥文件路径,一般默认不需修改
② 然后两台机器分别重启sshd服务:
systemctl restart sshd
③ 两台机器分别切换到tbase用户下,查看~下有没有.ssh目录,没有就新建一个,注意权限问题。
su tbase
cd ~
mkdir .ssh
chmod 700 .ssh #.ssh需要700权限
ssh-keygen -t rsa #生成公钥私钥
注意提示的密钥保存路径。
④ 247与248,247与247互相分发密钥(主节点也需要给自己配置互信),执行命令后需要输入一次目标机器tbase用户的密码:
ssh-copy-id -i /data/tbase/.ssh/id_rsa.pub tbase@172.16.8.248 #在247上执行,密钥路径建议使用绝对路径
ssh-copy-id -i /data/tbase/.ssh/id_rsa.pub tbase@172.16.8.247 #在248上执行,密钥路径建议使用绝对路径
ssh-copy-id -i /data/tbase/.ssh/id_rsa.pub tbase@172.16.8.247 #在247上执行,密钥路径建议使用绝对路径
大小写问题我输错了好几次~~
⑤ 配置权限
分发密钥后,.ssh下会有一个authorized_keys文件,需要添加600或644权限
cd ~/.ssh
chmod 644 authorized_keys
⑥测试互信
ssh 'tbase@172.16.8.248' #247上执行
ssh 'tbase@172.16.8.247' #248上执行
ssh 'tbase@172.16.8.247' #247上执行
两台机器能够互相免密,则互信配置成功。
三、安装部署
1. 获取TBase安装包
① 可以从git或腾讯工蜂直接wget,我直接用之前的V2.1.0版本。
cd /data/tbase
任选一个:
wget https://git clone https://用户名:密码@git.code.tencent.com/Tencent_Open_Source/TBase.git #腾讯工蜂
wget git clone https://github.com/Tencent/TBase #GIT,可能会慢一些
https://pan.baidu.com/s/1FTRykAe0D_UEw9x7bKXhgA 提取码: z31m #我的网盘,TBase版本V2.1.0
② 解压
cd /data/tbase
unzip mirrors-tbase-v2.1.0-release.zip
mv mirrors-tbase-v2.1.0-release.zip /opt #个人习惯把原始安装包统一放在/opt下面
2. 源码编译安装configure
2.1 编译configure
cd /data/tbase/tbase #进入刚刚解压的安装包
chmod +x configure*
./configure --prefix=/data/tbase/tbase_bin_v2.1 --enable-user-switch --with-openssl --with-ossp-uuid CFLAGS=-g #执行脚本编译
大量刷屏后执行完毕。
2.2 安装configure
make clean
make && make install
出现下图时第一步成功了。
3. 安装contrib:
chmod +x contrib/pgxc_ctl/make_signature
cd contrib
make -sj
make install
出现下图则成功。
4. 配置环境变量
tbase用户下的~/.bashrc添加下列配置(所有机器都需要,注意根据自己实际配置添加)
export TBASE_HOME=/data/tbase/tbase_bin_v2.1
export PATH=$TBASE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$TBASE_HOME/lib:${LD_LIBRARY_PATH}
使配置生效:
source ~/.bashrc
截至目前,所有所需基本环境已配置完毕,进入集群初始化阶段。
5. 生成pgxc_ctl模板配置文件
主节点进入pgxc_ctl工具,此时会提醒缺少配置文件,使用命令自动生成模板文件:
pgxc_ctl #进入pgxc_ctl工具
prepare config #生成模板文件
exit #退出pgxc_ctl工具
根据自己实际情况修改pgxc_ctl模板配置文件:
cd /data/tbase/pgxc_ctl
vim pgxc_ctl.conf
:set nu #vim中显示行数
6. 分发二进制包并初始化集群
主节点下,进入pgxc_ctl工具,使用deploy all分发二进制包,使用init all初始化集群:
pgxc_ctl #进入pgxc工具
deploy all #分发二进制包
init all #初始化集群
初始化集群会产生大量刷屏的数据,刷屏结束后,可以使用monitor all 命令查看集群情况。
本次有节点没起来,后面再研究哪里出的问题,估计是pgxc_ctl.conf。
monitor all #查看集群状态
7. 集群访问,创建分布式表
psql -h 172.28.16.239 -p 30004 -d postgres -U tbase
create default node group default_group with (dn001,dn002);
create sharding group to group default_group;
create table t1(id int primary key,name varchar(20));
insert into t1 select generate_series(1,100);
TBase集群起来后,需要创建分布式表才能够使用。
TBase开源版V2.1.0 集群搭建部署完整版相关推荐
- Spark2.2.0集群搭建部署之【HADOOP集群篇】
软件准备信息,详见Spark2.2.0集群搭建部署之[软件准备篇] 基础配置信息,详见Spark2.2.0集群搭建部署之[基础配置篇] SSH无密访问,详见park2.2.0集群搭建部署之[无密访问篇 ...
- Spark2.2.0集群搭建部署之【基础配置篇】
软件准备信息,详见Spark2.2.0集群搭建部署之[软件准备篇] Spark集群在生产环境中,主要部署在linux的集群中,所以需要先安装JDK,SCALA等基础配置. 由于Spark是计算框架,所 ...
- Hadoop分布式集群搭建(完整版)
一.前期准备工作 VMware和Centos7下载安装教程: https://blog.csdn.net/m0_59209350/article/details/117793482 XShell和Xf ...
- Spark2.2.0集群搭建部署之【软件准备篇】
本文主要展示如何在虚拟机上搭建部署Spark2.2.0的详细步骤,包括环境安装.无密登录.Hadoop集群,Spark集群. 需要准备的软件为: VMware-WorkStation CentOS-7 ...
- Spark2.1.0 + CarbonData1.0.0集群模式部署及使用入门
1 引言 Apache CarbonData是一个面向大数据平台的基于索引的列式数据格式,由华为大数据团队贡献给Apache社区,目前最新版本是1.0.0版.介于目前主流大数据组件应用场景的局限性,C ...
- Spark-1.4.0集群搭建
主要内容 Ubuntu 10.04 系统设置 ZooKeeper集群搭建 Hadoop-2.4.1集群搭建 Spark 1.4.0集群搭建 假设已经安装好Ubuntu操作系统 Ubuntu 10.04 ...
- hadoop-3.0.0集群搭建
2019独角兽企业重金招聘Python工程师标准>>> hadoop-3.0.0集群搭建 下载hadoop包 wget -c http://ftp.jaist.ac.jp/pub/a ...
- redis5.0集群搭建(两台服务器)
redis5.0集群搭建(两台服务器) 用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master.3 salve 环境. redis 采用 redis-5.0.2 版本. 两台虚拟机都是 C ...
- Ubuntu 12.04下spark1.0.0 集群搭建(原创)
spark1.0.0新版本的于2014-05-30正式发布啦,新的spark版本带来了很多新的特性,提供了更好的API支持,spark1.0.0增加了Spark SQL组件,增强了标准库(ML.str ...
- Hadoop-2.8.0集群搭建、hadoop源码编译和安装、host配置、ssh免密登录、hadoop配置文件中的参数配置参数总结、hadoop集群测试,安装过程中的常见错误
25. 集群搭建 25.1 HADOOP集群搭建 25.1.1集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起 HDFS集群: 负责海量数据 ...
最新文章
- MFC中显示 .bmp格式的位图
- 综合布线工作组2008年上半年技术课题工作安排会议通知
- 深入理解netfilter框架|经典PDF
- 机器人学 —— 机器人视觉(极几何)
- python nodemcu_python开发nodemcu(一)
- Spring学习--实现 FactoryBean 接口在 Spring IOC 容器中配置 Bean
- 面向对象的 XSLT编程
- 毕啸南专栏 | 对话王小川:搜狗不是谁的“变量”,是行业主要玩家
- mysql 键缓冲区_mysql:键缓存
- Fireworks快捷键大全和ps查看切图的坐标颜色
- export ,export default 和 import 区别以及用法
- 太强了!这款轻量级的数据库中间件完美解决了SpringBoot中分库分表问题?
- 我与计算机作文450字,第一次上网作文450字(通用5篇)
- 【Gym-102606 H】Heat Pipes【奇环染色、bfs 生成树】
- 简约清新二次元引导个人主页源码
- gp338信令_细说GP338GP328对讲机编程
- 我是社保局工作的,给大家介绍一下准确的“一老一小”保险知识[转载]
- linux下oob_cmd命令,linux下 OOB 炸弹的制作
- Indexes and Indexing
- 一周XX思考(第12期)