部署TiDB集群
架构图

节点规划
120.52.146.213	Control Machine
120.52.146.214	PD1_TiDB1
120.52.146.215	PD2_TiDB2
120.52.146.216	PD3
120.52.146.217	TiKV1
120.52.146.218	TiKV2
120.52.146.219	TiKV3
软件要求
CentOS 7.3 (64 bit) or later with Python 2.7 installed
1、在控制节点上安装依赖软件
# yum -y install epel-release git curl sshpass
# yum -y install python-pip
2、创建 tidb 用户
# useradd tidb
# passwd tidb
3、配置sudo权限
# visudo
tidb ALL=(ALL) NOPASSWD: ALL
4、切换用户,生成SSH-KEY
# su - tidb
$ ssh-keygen -t rsa
5、下载 tidb ansible 项目代码
$ git clone -b v3.0.4 https://github.com/pingcap/tidb-ansible.git
6、安装ansible和相关依赖
$ cd /home/tidb/tidb-ansible
$ sudo pip install -r requirements.txt
$ ansible --version
7、配置SSH互信
$ cd /home/tidb/tidb-ansible
$ vi hosts.ini
[servers]
120.52.146.214
120.52.146.215
120.52.146.216
120.52.146.217
120.52.146.218
120.52.146.219
[all:vars]
username = tidb
ntp_server = pool.ntp.org
$ ansible-playbook -i hosts.ini create_users.yml -u root -k
8、安装NTP
$ cd /home/tidb/tidb-ansible
$ ansible-playbook -i hosts.ini deploy_ntp.yml -u tidb -b
9、挂载磁盘(这一步可以在装系统的时候就准备好)
# fdisk -l
# parted -s -a optimal /dev/sdb mklabel gpt -- mkpart primary ext4 1 -1
# mkfs.ext4 /dev/sdb
# lsblk -f
# vim /etc/fstab
UUID=c51eb23b-195c-4061-92a9-3fad812cc12f /data1 ext4 defaults,nodelalloc,noatime 0 0
# mkdir /data1
# mount -a
# mount -t ext4
/dev/sdb on /data1 type ext4 (rw,noatime,nodelalloc,data=ordered)
10、根据集群架构修改 inventory.ini
## TiDB Cluster Part
[tidb_servers]
120.52.146.214
120.52.146.215
[tikv_servers]
120.52.146.217
120.52.146.218
120.52.146.219
[pd_servers]
120.52.146.214
120.52.146.215
120.52.146.216
[spark_master]
[spark_slaves]
[lightning_server]
[importer_server]
## Monitoring Part
# prometheus and pushgateway servers
[monitoring_servers]
120.52.146.214
[grafana_servers]
120.52.146.214
# node_exporter and blackbox_exporter servers
[monitored_servers]
120.52.146.214
120.52.146.215
120.52.146.216
120.52.146.217
120.52.146.218
120.52.146.219
[alertmanager_servers]
120.52.146.214
11、下载部署包到本地
$ ansible-playbook local_prepare.yml
12、初始化系统环境修改内核参数
$ ansible-playbook bootstrap.yml
13、部署tidb集群
$ ansible-playbook deploy.yml
14、启动集群
$ ansible-playbook start.yml
15、访问集群
$ mysql -uroot -h 120.52.146.214 -P 4000
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 182
Server version: 5.7.25-TiDB-v3.0.4 MySQL Community Server (Apache License 2.0)
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)]> show databases;
+--------------------+
| Database           |
+--------------------+
| INFORMATION_SCHEMA |
| PERFORMANCE_SCHEMA |
| mysql              |
| test               |
+--------------------+
4 rows in set (0.00 sec)
参考:
https://pingcap.com/docs/v3.0/how-to/deploy/orchestrated/ansible/
https://docs.ansible.com/ansible/latest/cli/ansible-playbook.html
https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/
部署TiDB集群的更多相关文章
- Centos7配置TiDB集群
		
一:各模块属性 模块名称 状态 建议实例数 功能 负载均衡组件 TiDB 无状态 2 接收SQL请求,处理SQL相关逻辑,并通过PB找到存储数据的TiKV地址 LVS.HAProxy.F5 PB 集群 ...
 - 使用 Docker Compose 快速构建 TiDB 集群
		
本文档介绍如何在单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群.Docker Compose 可以通过一个 YAML 文件定义多个容器的应用服务,然后一键启动或停止. ...
 - 在线安装TIDB集群
		
在线安装TiDB集群 服务器准备 说明:TiDB8需要能够连接外网,以便下载各类安装包 TiDB4非必须,但最好是有一台,因为后续测试Mysql数据同步或者进行性能比较时,都要用到 TiKV最好是采 ...
 - TiDB集群安装主要操作
		
TiDB集群安装主要操作 参考资料:https://www.cnblogs.com/plyx/archive/2018/12/21/10158615.html 一.TiDB数据简介 TiDB 是 Pi ...
 - tidb集群
		
tidb ansible部署 https://zhuanlan.zhihu.com/p/27308307?refer=newsql 网址:http://www.cnblogs.com/mowei/p/ ...
 - window下使用Redis Cluster部署Redis集群
		
日常的项目很多时候都需要用到缓存.redis算是一个比较好的选择.一般情况下做一个主从就可以满足一些比较小的项目需要.在一些并发量比较大的项目可能就需要用到集群了,redis在Windows下做集群可 ...
 - Docker部署Hadoop集群
		
Docker部署Hadoop集群 2016-09-27 杜亦舒 前几天写了文章"Hadoop 集群搭建"之后,一个朋友留言说希望介绍下如何使用Docker部署,这个建议很好,Doc ...
 - Docker 容器部署 Consul 集群
		
Docker 容器部署 Consul 集群 一.docker安装与启动1.1安装docker[root@localhost /]# yum -y install docker-io 1.2更改配置文件 ...
 - zookeeper部署及集群测试
		
zookeeper部署及集群测试 环境 三台测试机 操作系统: centos7 ; hostname: c1 ; ip: 192.168.1.80 操作系统: centos7 ; hostname: ...
 
随机推荐
- Could not resolve com.android.support:design 28.0.0
			
想试一试android的那个侧滑栏功能,需要用到 'com.android.support:design:28.0.0'建好之后一直报关于28.00的错误,一开始各种百度更改配置没吊用,最后感觉是网络 ...
 - jmeter APP接口压力测试
			
第一步:获取开发文档,了解接口地址和参数名 第二步:jmeter中添加需要测试的接口 a.设计APP的接口框架: b.http请求默认值设置如下: c.接口中应需要用到sign字段,加密字符串与时间戳 ...
 - 《团队名称》第八次团队作业:Alpha冲刺day3
			
项目 内容 这个作业属于哪个课程 2016计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十二 团队作业8-软件测试与ALPHA冲刺 团队名称 快活帮 作业学习目标 (1)掌握 ...
 - @EnableFeignClients 客户端详细
			
在Spring cloud应用中,当我们要使用feign客户端时,一般要做以下三件事情 : 1.使用注解@EnableFeignClients启用feign客户端: 示例 : @SpringBootA ...
 - 验证码破解 | Selenium模拟登录知乎
			
import requests import re import execjs import time import hmac from hashlib import sha1 class Zhi ...
 - 关于读取Com口数据时,Com口的名字的两种读法。
			
1,直接调用SerialPort类中的GetPortNames()方法. string[] portList = System.IO.Ports.SerialPort.GetPortNames(); ...
 - Reactive Extensions (Rx) 入门(5) —— Rx的事件编程
			
译文:https://blog.csdn.net/fangxing80/article/details/7749907 原文:http://www.atmarkit.co.jp/fdotnet/int ...
 - DNN的BP算法Python简单实现
			
BP算法是神经网络的基础,也是最重要的部分.由于误差反向传播的过程中,可能会出现梯度消失或者爆炸,所以需要调整损失函数.在LSTM中,通过sigmoid来实现三个门来解决记忆问题,用tensorflo ...
 - nginx 访问控制之 http_referer
			
在rewrite时,曾经用过该变量,当时实现了防盗链功能. 其实基于该变量,我们也可以做一些特殊的需求. 示例: 背景:网站被黑挂马,搜索引擎收录的网页是有问题的,当通过搜索引擎点击到网站时,却显示一 ...
 - ln -s 使用
			
最近开发项目中遇到一个问题,网站上传文件到项目根目录下的upload文件夹,但是每次项目发布都会把upload文件夹删除掉,所以我们需要把upload文件夹放在系统目录下而不是项目根目录下. 访问的时 ...