腾讯数据库tdsql部署与验证
环境准备
| 主机 | IP | 配置(最低要求配置) |
| :----- | ------------- | ------------------ |
| node-1 | 192.168.1.81 | 8核16G |
| node-2 | 192.168.1.160 | 8核16G |
| node-3 | 192.168.1.202 | 8核16G |
自己整理的文档[7天有效期]:
链接:https://pan.baidu.com/s/1MS1YMx2IobyJYkghVqcHrQ
提取码:4osl
复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V5的分享
物料包准备
tdsql_full_install_ansible_10.3.14.1.0_D002.zip
TDSQL私有云部署手册 151.doc
每个服务器准备2块额外磁盘用于HDFS
下载地址:
配置要求:
测试环境:
至少需要3台机器来搭建一个最小的TDSQL集群(2台物理机用于DB、1台虚拟机用于调度和运营体系部署)
| 组件 | 机器数 | 机器配置(CPU/内存/磁盘) | 备注 |
|---|---|---|---|
| zookeeper | 1台 | 虚拟机 2C/4G/100G | |
| keeper | 0台 | 虚拟机 2C/4G/100G | 可以与zookeeper同机部署 |
| oss | 0台 | 虚拟机 2C/4G/100G | 可以与zookeeper同机部署 |
| DB | 2台 | 物理机 8C/16G/500GSSD | |
| Proxy | 0台 | 物理机 2C/4G/100G | 可以与db机器同机部署 |
| monitor | 0台 | 虚拟机 2C/4G/100G | 可以与zookeeper同机部署 |
| chitu | 0台 | 虚拟机 2C/4G/100G | 可以与zookeeper同机部署 |
| hdfs(可选) | 1台 | 物理机 4C/4G/1T | 可选,磁盘容量看具体需求 |
| LVS(可选) | 2台 | 物理机2C/4G/100G | 可选 |
| es | 1台 | 虚拟机 2C/4G/100G | |
| kafka | 3台 | 虚拟机 2C/4G/100G | 加载java虚拟机的时候会吃掉3个g |
正式环境:
| 组件 | 机器数 | 机器配置(CPU/内存/磁盘) | 备注 |
|---|---|---|---|
| zookeeper | 3台/5台 | 虚拟机8C/16G/500G | |
| keeper | 0台 | 虚拟机8C/16G/500G | 可以与oss同机部署 |
| oss | 2台 | 虚拟机8C/16G/500G | |
| DB | 3*n台 | 物理机 32C/64G/1T SSD | 一主两备,机器配置看具体需求 |
| Proxy | 3台 | 物理机8C/16G/500G | 可以与DB机器同机部署,机器配置看具体需求 |
| monitor | 3台 | 虚拟机 8C/16G/500G | 可以与zookeeper同机部署 |
| chitu | 2台 | 虚拟机 8C/16G/500G | 可以与zookeeper同机部署 |
| hdfs(可选) | 3台 | 物理机8C/8G/12T | 可选,磁盘容量看具体需求 |
| LVS(可选) | 2台 | 物理机8C/16G/500G | 可选 |
| kafka(可选) | 3台 | 物理机8C/16G/2T | 多源同步组件,万兆网卡 |
| consumer(可选) | 1台 | 物理机8C/16G/500G | 多源同步组件,可与kafka混部 |
| es | 1台 | 物理机8C/16G/500G |
当前环境规划:
| 模块 | 192.168.1.81 | 192.168.1.160 | 192.168.1.202 |
|---|---|---|---|
| zk | Y | Y | Y |
| scheduler | Y | Y | |
| oss | Y | Y | |
| chitu | Y | Y | |
| monitor(采集监控) | Y | Y | |
| db | Y | Y | |
| proxy | Y | Y | |
| hdfs | Y |
TDSQL部署
免密配置
ssh-keygen -f ~/.ssh/id_rsa -N ''
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.81
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.160
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.202
解包
#解包
unzip tdsql_full_install_ansible_10.3.14.1.0_D002.zip
#执行pythin脚本安装ansible
cd tdsql_full_install_ansible
python settings/install_ansible.py
#格式化数据盘,新建data1目录[所有机器]
mkfs.xfs -f /dev/sdb
mkdir -p /data1
mount /dev/sdb /data1
修改配置:
#vim group_vars/all (修改网卡名和数据库密码)
sed -i 's/netif_name: .*$/netif_name: eth0/' group_vars/all
sed -i 's/tdsql_pass: .*$/tdsql_pass: a+complex+123456/' group_vars/all
sh -x encrypt.sh
修改tdhost文件:
[root@node-1 tdsql_full_install_ansible]# pwd
/root/tdsql_full_install_ansible
cat tdsql_hosts
#-------------------------------------------------------------#
[envcheck]
mac1 ansible_ssh_host=192.168.1.81
mac2 ansible_ssh_host=192.168.1.160
mac3 ansible_ssh_host=192.168.1.202
[zk]
zk1 ansible_ssh_host=192.168.1.81
zk2 ansible_ssh_host=192.168.1.202
zk3 ansible_ssh_host=192.168.1.160
[scheduler]
scheduler1 ansible_ssh_host=192.168.1.202
scheduler2 ansible_ssh_host=192.168.1.160
[oss]
oss1 ansible_ssh_host=192.168.1.202
oss2 ansible_ssh_host=192.168.1.160
[chitu]
chitu1 ansible_ssh_host=192.168.1.202
chitu2 ansible_ssh_host=192.168.1.160
[monitor]
monitor1 ansible_ssh_host=192.168.1.202
monitor2 ansible_ssh_host=192.168.1.160
[db]
db1 ansible_ssh_host=192.168.1.202
db2 ansible_ssh_host=192.168.1.160
[proxy]
proxy1 ansible_ssh_host=192.168.1.202
proxy2 ansible_ssh_host=192.168.1.160
[hdfs]
hdfs1 ansible_ssh_host=192.168.1.160
[es]
es1 ansible_ssh_host=192.168.1.81
[newdb]
newdb1 ansible_ssh_host=1.1.1.1
newdb2 ansible_ssh_host=2.2.2.2
newdb3 ansible_ssh_host=3.3.3.3
#-------------------------------------------------------------#
设置tdsql明文密码
#假定我们给tdsql账号设置的明文密码为:a+complex+123456
cat group_vars/all
---
zk_num: 3 #<---填入zk集群的数量,1、3或者5
netif_name: eth0 #<---填入scheduler(ifconfig看到的)网卡的名称
tdsql_pass: a+complex+123456 #<---填入tdsql账号的明文密码
zk_rootdir: /tdsqlzk2 #<---填入tdsql系统在zk上的根路径(一般不改)
metadb_ip: 1.1.1.1 #<-----暂时不改动
metadb_port: 15001 #<-----暂时不改动
metadb_ip_bak: 2.2.2.2 #<-----暂时不改动
metadb_port_bak: 15001 #<-----暂时不改动
metadb_user: tdsql_hanlon #<-----暂时不改动
metadb_password: 123456 #<-----暂时不改动
ssh_port: 22 #<-----暂时不改动
hdfs_datadir: /data1/hdfs #<-----暂时不改动
kafka_logdir: /data1/kafka #<-----暂时不改动
es_mem: 8 #<-----暂时不改动
es_log_days: 7 #<-----暂时不改动
es_base_path: /data/application/es-install/es #<-----暂时不改动
tdsql_secret_pass: K2JatUv5llBbMrske/k2YbqC #<-------密文密码,自动更新,切勿手动更改
oc_secret_pass: LGhVs0v5nVxcOLQie/k9bb2I #<-------密文密码,自动更新,切勿手动更改
clouddba_metadb_pass: h5Wyg2Xy #<-------密文密码,自动更新,切勿手动更改
---
zk_num: 3
netif_name: eth0
tdsql_pass: a+complex+123456
zk_rootdir: /tdsqlzk2
metadb_ip: 1.1.1.1
metadb_port: 15001
metadb_ip_bak: 2.2.2.2
metadb_port_bak: 15001
metadb_user: tdsql_hanlon
metadb_password: 123456
ssh_port: 22
hdfs_datadir: /data1/hdfs
kafka_logdir: /data1/kafka
es_mem: 8
es_log_days: 7
es_base_path: /data/application/es-install/es
tdsql_secret_pass: K2JatUv5llBbMrske/k2YbqC
oc_secret_pass: LGhVs0v5nVxcOLQie/k9bb2I
clouddba_metadb_pass: h5Wyg2Xy
部署
#vim group_vars/all (修改网卡名和数据库密码)
sed -i "s/netif_name:.*/netif_name: eth0/" group_vars/all
sed -i "s/tdsql_pass:.*/tdsql_pass: a+complex+123456/" group_vars/all
#安装zk:
#使用tdsql安装的zk
sh -x encrypt.sh
ansible-playbook -i tdsql_hosts part1_site.yml
#访问任意节点:
[root@node-1 tdsql_full_install_ansible]# grep chitu tdsql_hosts
[chitu]
chitu1 ansible_ssh_host=192.168.1.202
chitu2 ansible_ssh_host=192.168.1.160

集群配置

集群初始化
添加机房


添加机型规格
proxy机型并非实际用到的 这里随便怎么写都行

添加TS80机型为后续数据库使用的机型,配置如下
mkfs.xfs /dev/sdb
mkdir /data1
mount /dev/sdb /data1
TS80机型配置:
数据磁盘目录:
建议是: /data1/tdengine/data
日志磁盘目录:
建议是: /data1/tdengine/log
安装包目录:
/data/home/tdsql/tdsqlinstall,固定不变
数据库安装目录:
/data/tdsql_run,固定不变
数据磁盘与日志磁盘大小比例为 3:1

设备资源添加
上报网关资源


这里添加了3个网关资源并且对应了2个IDC,在组成网关组的时候可以选择2个IDC取3个服务器
上传DB资源:
192.168.1.81 192.168.1.160 划分到机房1 192.168.1.202划分到机房2 用于组成集群,并设置了3个网关

因为目前两个机房有3台服务器,上报资源时上报了2个DB服务器所以可以从2个机房取2台服务器




开始创建:




初始化完成后直接下一步:

安装完成会直接跳转到登录页面:
http://192.168.1.160/tdsqlpcloud

测试tdsql连接

mysql -utdsqlpcloud -h192.168.1.160 -P15065 -p'123456'
[root@node-1 tdsql_full_install_ansible]# mysql -utdsqlpcloud -h192.168.1.160 -P15065 -p'123456'
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 3648
Server version: 5.7.17-11-V2.0R540D002-20191226-1152-log Source distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>
测试mysql连接无误,将连接账号密码写入到 group_vars/all 文件中
---
zk_num: 3
netif_name: eth0
tdsql_pass: a+complex+123456
zk_rootdir: /tdsqlzk2
metadb_ip: 192.168.1.160 #主库IP
metadb_port: 15065 #主库端口
metadb_ip_bak: 192.168.1.202 #从库IP
metadb_port_bak: 15065 #从库端口
metadb_user: tdsqlpcloud #数据库连接账号
metadb_password: 123456 #数据库连接密码
ssh_port: 36000
hdfs_datadir: /data2/hdfs,/data3/hdfs,/data4/hdfs
kafka_logdir: /data2/kafka,/data3/kafka,/data4/kafka
es_mem: 8
es_log_days: 7
es_base_path: /data/application/es-install/es
tdsql_secret_pass: S8dfgSoMUjGaUn+EHkm3pA==
oc_secret_pass: TM1QhyoMWT2dWHCCHkm8qA==
clouddba_metadb_pass: h5Wyg2Xy
执行安装part2_site.yml
#安装大约4分钟左右,日志路径/var/log/ansible.log,最终显示failed任务数为0表示安装成功。
sh -x encrypt.sh <---------必须执行,更新密文密码
ansible-playbook -i tdsql_hosts part2_site.yml
#找到安装了 scheduler 的服务器并执行:
[root@node-1 tdsql_full_install_ansible]# grep scheduler tdsql_hosts
[scheduler]
scheduler1 ansible_ssh_host=192.168.1.202
scheduler2 ansible_ssh_host=192.168.1.160
# ssh 192.168.1.202
cd /data/application/scheduler/bin
./agent_config --mode modify --option="ocagent_port" --value="8966"
./agent_config --mode modify --option="hadoop_dir" --value=" /data/home/tdsql/hadoop-3.2.1/bin"
#执行结果:
[root@node-1 tdsql_full_install_ansible]# ssh 192.168.1.202
Last login: Tue Feb 23 16:57:56 2021 from 192.168.1.81
[root@localhost ~]# cd /data/application/scheduler/bin
[root@localhost bin]# ./agent_config --mode modify --option="ocagent_port" --value="8966"
zookeeper timeout:10000 msec,msg timeout 30000 msec
zookeeper path:/tdsqlzk2/configs/agent@global
zookeeper value:{
"hadoop_dir" : "/data/home/tdsql/hadoop-3.2.1/bin",
"ocagent_port" : "8966"
}
operation success!
[root@localhost bin]# ./agent_config --mode modify --option="hadoop_dir" --value=" /data/home/tdsql/hadoop-3.2.1/bin"
zookeeper timeout:10000 msec,msg timeout 30000 msec
zookeeper path:/tdsqlzk2/configs/agent@global
zookeeper value:{
"hadoop_dir" : " /data/home/tdsql/hadoop-3.2.1/bin",
"ocagent_port" : "8966"
}
operation success!
安装备用赤兔:
将已初始化的chitu机器上拷贝2个文件到未初始化的chitu机器上,并删除未初始化chitu机器上的crontab,如下:
192.168.1.202 已初始化chitu
192.168.1.160 未初始化chitu
(1)在202机器上,拷贝文件到160机器上
scp -p /data/website/tdsqlpcloud/www/config/database.php 192.168.1.160:/data/website/tdsqlpcloud/www/config/
scp -p /data/website/tdsqlpcloud/www/config/install.lock 192.168.1.160:/data/website/tdsqlpcloud/www/config/
(2)删除160机器上nginx用户的crontab
[root@localhost bin]# ssh 192.168.1.160
[root@localhost ~]# cp -a /var/spool/cron/nginx /data/tools/nginx_cron_bak
[root@localhost ~]# rm -f /var/spool/cron/nginx
(3)测试,登录205的chitu
http://192.168.1.160/tdsqlpcloud

安装HDFS服务
由于磁盘前面已经添加并格式化过,这里不用操作了
#需要安装hdfs的服务器修改主机名[必须修改,因为我们的主机名存在 - 线 需要改成没有特殊符号的]
#修改 tdsql_hosts 文件,将需要安装hdfs服务的服务器添加上去,这里就添加3台hdfs
vim tdsql_hosts 新增hdfs配置:
[hdfs]
hdfs1 ansible_ssh_host=192.168.1.81
hdfs2 ansible_ssh_host=192.168.1.160
hdfs3 ansible_ssh_host=192.168.1.202
#安装hdfs单点[适用于低配服务器]:
#执行安装
ansible-playbook -i tdsql_hosts hdfs_single.yml
#切换到tdsql用户
su - tdsql
#用tdsql用户在hdfs1机器上,格式化namenode
hdfs namenode -format
#用tdsql用户在hdfs1机器上,启动namenode和datanode
hdfs --daemon start namenode
hdfs --daemon start datanode
#附:用tdsql用户关闭hdfs进程
hdfs --daemon stop datanode
hdfs --daemon stop namenode
#安装hdfs高可用安装启动
#在安装时需要保证主机名修改了
#[本文用多点,配置不高就用单点如果hdfs多点,那么zk服务也需要是多点,因为之前配置的zk就是多点,这里就可以继续安装多点hdfs,否则安装单点]:
#每台服务器需要主机名不同 设置方法: hostnamectl set-hostname node1
ansible-playbook -i tdsql_hosts hdfs.yml
#初始化HDFS:
#用tdsql用户在hdfs1机器,格式化zk
hdfs zkfc -formatZK
#用tdsql用户在所有机器,启动journalnode
hdfs --daemon start journalnode
#用tdsql用户在hdfs1机器,格式化并启动namenode
hdfs namenode -format
hdfs --daemon start namenode
#用tdsql用户在hdfs2机器,格式化namenode
hdfs namenode -bootstrapStandby
#------------------------------启动hdfs集群------------------------------#
#用tdsql用户在hdfs1机器,格式化并启动 zk
su - tdsql
hdfs zkfc -formatZK #格式化只能一次
#所有机器启动 journalnode
hdfs --daemon start journalnode
#在hdfs1和hdfs2上启动namenode
hdfs --daemon start namenode
#在hdfs1和hdfs2上启动zkfc
hdfs --daemon start zkfc
#在所有hdfs机器上启动datanode
hdfs --daemon start datanode
#------------------------------启动hdfs集群------------------------------#
#------------------------------停止hdfs集群------------------------------#
在所有hdfs机器上关闭datanode
hdfs --daemon stop datanode
在hdfs1和hdfs2上关闭zkfc
hdfs --daemon stop zkfc
在hdfs1和hdfs2上关闭namenode
hdfs --daemon stop namenode
在所有hdfs机器上关闭journalnode
hdfs --daemon stop journalnode
#------------------------------停止hdfs集群------------------------------#
# hdfs haadmin -getAllServiceState 命令执行失败尝试:
hdfs --daemon stop namenode
hdfs --daemon stop journalnode
hdfs --daemon start namenode
hdfs --daemon start journalnode
hdfs dfsadmin -report
hdfs haadmin -getAllServiceState
在hdfs集群下查看/tdsqlbackup路径
(7)在hdfs集群下查看/tdsqlbackup路径
用tdsql用户执行以下命令
su - tdsql
#查看/tdsqlbackup目录是否已经被自动创建,权限是否是:tdsql supergroup
hadoop fs -ls /
drwxr-xr-x - tdsql supergroup 0 2019-01-02 17:52 /tdsqlbackup
#如果目录不在或者权限不对,用下面命令修改:
hadoop fs -mkdir /tdsqlbackup
hadoop fs -chown tdsql.supergroup /tdsqlbackup
检查HDFS端口并补充到 group_vars/all 文件中
如果是3节点的hdfs架构,如上图所示填写namenode节点(一般2个)的50070端口
/data2/hdfs /data3/hdfs /data4/hdfs
将这些信息填写到all文件中
hdfs_datadir: /data2/hdfs,/data3/hdfs,/data4/hdfs
自动化演练

创建一个分布式实例:


腾讯数据库tdsql部署与验证的更多相关文章
- 286万QPS!腾讯云TDSQL打造数据库领域的“超音速战机”
Bloodhound SSC超音速汽车将陆地极限速度提升到1678公里/小时,号称陆地“超音速战斗机”.无独有偶,同样也在2017年,在英特尔®.腾讯金融云团队的共同见证下,腾讯云数据库TDSQL采用 ...
- 腾讯云分布式数据库TDSQL在银行传统核心系统中的应用实践
本文是腾讯云TDSQL首席架构师张文在腾讯云Techo开发者大会现场的演讲实录,演讲主题是<TDSQL在银行传统核心系统中的应用实践>. 我是TDSQL架构师张文,同时也是TDSQL的开发 ...
- 强强联袂!腾讯云TDSQL与国双战略签约,锚定国产数据库巨大市场
日前,腾讯云计算(北京)有限责任公司与北京国双科技有限公司签署了<国产数据库产品战略合作协议>,双方将在数据库技术方面展开深度合作,通过分布式交易型数据库的联合研发.产品服务体系建设.品牌 ...
- 怎样将本地web数据库项目部署到腾讯云服务器上?
怎样将本地web数据库项目 部署到腾讯云服务器上? 1.本地计算机的工作: 1.1用eclipse或者myeclipse做好一个web项目,可以只做一个数据库的增删改查,本地部署到Tomcat服务器, ...
- Greenplum 数据库安装部署(生产环境)
Greenplum 数据库安装部署(生产环境) 硬件配置: 16 台 IBM X3650, 节点配置:CPU 2 * 8core,内存 128GB,硬盘 16 * 900GB,万兆网卡. 万兆交换机. ...
- 腾讯云TDSQL审计原理揭秘
版权声明:本文由孙勇福原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/244 来源:腾云阁 https://www.qclo ...
- 转_Greenplum 数据库安装部署(生产环境)
Greenplum 数据库安装部署(生产环境) 硬件配置: 16 台 IBM X3650, 节点配置:CPU 2 * 8core,内存 128GB,硬盘 16 * 900GB,万兆网卡. 万兆交换机. ...
- SQL Server 2008 数据库镜像部署实例之三 配置见证服务器
SQL Server 2008 数据库镜像部署实例之三 配置见证服务器 前面已经完成了镜像数据库的配置,并进行那个了故障转移测试.接下来将部署见证服务器,实现自动故障转移. 一.关于见证服务器 1.若 ...
- SQL Server 2008 数据库镜像部署实例之二 配置镜像,实施手动故障转移
SQL Server 2008 数据库镜像部署实例之二 配置镜像,实施手动故障转移 上一篇文章已经为配置镜像数据库做好了准备,接下来就要进入真正的配置阶段 一.在镜像数据库服务器上设置安全性并启动数据 ...
随机推荐
- 通过SignalR技术整合即时通讯(IM)在.NET中应用落地
1.引言 即时通讯(IM)是RDIFramework.NET敏捷开发框架全新提供的一个基于Web的即时通讯.内部聊天沟通的工具.界面美观大方对于框架内部进行消息的沟通非常方便.基于RDIFramewo ...
- “科大讯飞杯”第18届上海大学程序设计联赛春季赛暨高校网络友谊赛 G 血压游戏
[血压游戏] (https://ac.nowcoder.com/acm/contest/5278/G) 神奇的tag数组...,巧妙弥补了高度损失. 方法一:dsu on tree 类似长链剖分,不过 ...
- Buy the Ticket HDU - 1133 大数dp
题意: 演唱会门票售票处,那里最开始没有零钱.每一张门票是50元,人们只会拿着100元和50元去买票,有n个人是拿着50元买票,m个人拿着100元去买票. n+m个人按照某个顺序按序买票,如果一个人拿 ...
- UVA - 12295 最短路(迪杰斯特拉)——求按对称路线最短路条数
题意: 给你一个n,然后给你一个n*n的正方形w[i][j],你需要找到一个从(1,1)点走到(n,n)点的最短路径数量.而且这个路径必须按照y=x对称 题解: 我们把左上角的点当作(0,0)点,右下 ...
- Codeforces Round #295 (Div. 2) B. Two Buttons (DP)
题意:有两个正整数\(n\)和\(m\),每次操作可以使\(n*=2\)或者\(n-=1\),问最少操作多少次使得\(n=m\). 题解:首先,若\(n\ge m\),直接输出\(n-m\),若\(2 ...
- 微信小程序swiper实现 句子控app首页滑动卡片
微信小程序swiper实现 句子控app首页滑动卡片 引言:最近看到句子控APP首页的效果很清新,可是发现他的微信小程序端没有实现这个功能,我看了一下难度不大,于是尝试着去实现. 实现效果如下: 1. ...
- Nginx基础 - Nginx+Lua实现灰度发布与WAF
1.Nginx加载Lua环境默认情况下Nginx不支持Lua模块, 需要安装LuaJIT解释器, 并且需要重新编译Nginx, 建议使用openrestry 1)环境准备 [root@localhos ...
- VMware ESXi 开启嵌套虚拟化
VMware ESXi 默认不支持嵌套虚拟化功能,需要修改相关配置文件才能支持. 1.Esxi主机开启ssh,修改 /etc/vmware/config 配置文件,在配置文件后面加入如下配置:vhv. ...
- 信号量解决写者优先&读者优先&公平竞争(reader writer)
先说问题: 这里的rand都是伪随机.解决也很简单,srand即可.内容懒得改了~~ 描述及思路: 代码: 运行结果: 读者优先: 效果 ...
- 【非原创】LightOJ-1274 Beating the Dataset【期望dp】
学习博客:戳这里