环境准备

| 主机   | 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部署与验证的更多相关文章

  1. 286万QPS!腾讯云TDSQL打造数据库领域的“超音速战机”

    Bloodhound SSC超音速汽车将陆地极限速度提升到1678公里/小时,号称陆地“超音速战斗机”.无独有偶,同样也在2017年,在英特尔®.腾讯金融云团队的共同见证下,腾讯云数据库TDSQL采用 ...

  2. 腾讯云分布式数据库TDSQL在银行传统核心系统中的应用实践

    本文是腾讯云TDSQL首席架构师张文在腾讯云Techo开发者大会现场的演讲实录,演讲主题是<TDSQL在银行传统核心系统中的应用实践>. 我是TDSQL架构师张文,同时也是TDSQL的开发 ...

  3. 强强联袂!腾讯云TDSQL与国双战略签约,锚定国产数据库巨大市场

    日前,腾讯云计算(北京)有限责任公司与北京国双科技有限公司签署了<国产数据库产品战略合作协议>,双方将在数据库技术方面展开深度合作,通过分布式交易型数据库的联合研发.产品服务体系建设.品牌 ...

  4. 怎样将本地web数据库项目部署到腾讯云服务器上?

    怎样将本地web数据库项目 部署到腾讯云服务器上? 1.本地计算机的工作: 1.1用eclipse或者myeclipse做好一个web项目,可以只做一个数据库的增删改查,本地部署到Tomcat服务器, ...

  5. Greenplum 数据库安装部署(生产环境)

    Greenplum 数据库安装部署(生产环境) 硬件配置: 16 台 IBM X3650, 节点配置:CPU 2 * 8core,内存 128GB,硬盘 16 * 900GB,万兆网卡. 万兆交换机. ...

  6. 腾讯云TDSQL审计原理揭秘

    版权声明:本文由孙勇福原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/244 来源:腾云阁 https://www.qclo ...

  7. 转_Greenplum 数据库安装部署(生产环境)

    Greenplum 数据库安装部署(生产环境) 硬件配置: 16 台 IBM X3650, 节点配置:CPU 2 * 8core,内存 128GB,硬盘 16 * 900GB,万兆网卡. 万兆交换机. ...

  8. SQL Server 2008 数据库镜像部署实例之三 配置见证服务器

    SQL Server 2008 数据库镜像部署实例之三 配置见证服务器 前面已经完成了镜像数据库的配置,并进行那个了故障转移测试.接下来将部署见证服务器,实现自动故障转移. 一.关于见证服务器 1.若 ...

  9. SQL Server 2008 数据库镜像部署实例之二 配置镜像,实施手动故障转移

    SQL Server 2008 数据库镜像部署实例之二 配置镜像,实施手动故障转移 上一篇文章已经为配置镜像数据库做好了准备,接下来就要进入真正的配置阶段 一.在镜像数据库服务器上设置安全性并启动数据 ...

随机推荐

  1. Animator动画状态机的简单使用

    一.动画状态机的使用 1.动画状态机说明 2.动画切换箭头的Inspector面板 3.动画的Inspector面板 二.动画状态机的使用和脚本控制 1.动画状态机的使用  2.动画状态机的控制脚本 ...

  2. CSS开发过程中的20个快速提升技巧

    摘要:本文涵盖了20个CSS技巧,可以解决许多工作中常见的问题, 让你也成为一个CSS高手. 1.使用CSS重置(reset) css重置库如normalize.css已经被使用很多年了,它们可以为你 ...

  3. Pytest(15)pytest分布式执行用例

    前言 平常我们功能测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟,如果单个测试人员执行需要1000分钟才能跑完 当项目非常紧急时,会需要协调多个测试资源来把任务分成两部分,于是执行时间 ...

  4. 2019牛客暑期多校训练营(第五场)G-subsequence 1

    >传送门< 题意:给你两个数字字符串s,t,求字符串s的子序列比字符串t大的个数 思路:他的题解上写的就是dp的基础练习题,好像的确是这么回事,既然是dp,那么对于定义的状态不同得到的转移 ...

  5. hdu 6835 Divisibility 思维

    题意: 给你一个10进制的b和x,对于任意的一个b进制的y.如果y每一位的和可以被x整除,且y可以被x整除:或者如果y每一位的和不可以被x整除,且y不可以被x整除.那么就输出T.否则输出F 题解: 代 ...

  6. HDU - 3282 优先队列的使用

    题意: 按照顺序给你n个数,当数的数量是奇数的时候就输出它们的中位数 题解: 优先队列默认是大顶堆,即priority_queue.top()是这个队列中的最大值 那么我们就可以先创造一个大顶堆优先队 ...

  7. hdu5371 Hotaru's problem

    Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission ...

  8. SSH 密钥认证

    目录 SSH协议概述 SSH 和 Telnet 的区别 SSH 相关命令 SSH 验证方式 基于密钥的安全认证 SSH 优化 expect 脚本免交互登录 sshpass 免交互登录 SSH协议概述 ...

  9. Python_变量作用域与修改

    引用全局变量,不需要golbal声明,修改全局变量,需要使用global声明,特别地,列表.字典等如果只是修改其中元素的值(而不是整体赋值的形式),可以直接使用全局变量,不需要global声明. 参考 ...

  10. mybatis(五)mybatis工作流程

    转载:https://www.cnblogs.com/wuzhenzhao/p/11103017.html 先来看一下MyBatis 的编程式使用的方法: public void testMapper ...