架构图

节点规划

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集群的更多相关文章

  1. Centos7配置TiDB集群

    一:各模块属性 模块名称 状态 建议实例数 功能 负载均衡组件 TiDB 无状态 2 接收SQL请求,处理SQL相关逻辑,并通过PB找到存储数据的TiKV地址 LVS.HAProxy.F5 PB 集群 ...

  2. 使用 Docker Compose 快速构建 TiDB 集群

    本文档介绍如何在单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群.Docker Compose 可以通过一个 YAML 文件定义多个容器的应用服务,然后一键启动或停止. ...

  3. 在线安装TIDB集群

     在线安装TiDB集群 服务器准备 说明:TiDB8需要能够连接外网,以便下载各类安装包 TiDB4非必须,但最好是有一台,因为后续测试Mysql数据同步或者进行性能比较时,都要用到 TiKV最好是采 ...

  4. TiDB集群安装主要操作

    TiDB集群安装主要操作 参考资料:https://www.cnblogs.com/plyx/archive/2018/12/21/10158615.html 一.TiDB数据简介 TiDB 是 Pi ...

  5. tidb集群

    tidb ansible部署 https://zhuanlan.zhihu.com/p/27308307?refer=newsql 网址:http://www.cnblogs.com/mowei/p/ ...

  6. window下使用Redis Cluster部署Redis集群

    日常的项目很多时候都需要用到缓存.redis算是一个比较好的选择.一般情况下做一个主从就可以满足一些比较小的项目需要.在一些并发量比较大的项目可能就需要用到集群了,redis在Windows下做集群可 ...

  7. Docker部署Hadoop集群

    Docker部署Hadoop集群 2016-09-27 杜亦舒 前几天写了文章"Hadoop 集群搭建"之后,一个朋友留言说希望介绍下如何使用Docker部署,这个建议很好,Doc ...

  8. Docker 容器部署 Consul 集群

    Docker 容器部署 Consul 集群 一.docker安装与启动1.1安装docker[root@localhost /]# yum -y install docker-io 1.2更改配置文件 ...

  9. zookeeper部署及集群测试

    zookeeper部署及集群测试 环境 三台测试机 操作系统: centos7 ; hostname: c1 ; ip: 192.168.1.80 操作系统: centos7 ; hostname: ...

随机推荐

  1. spring-boot子模块打包的jar中去掉BOOT-INF文件夹

    1.spring-boot maven打包,一般pom.xml文件里会加 <plugin> <groupId>org.springframework.boot</grou ...

  2. wordpress面包屑导航简单实现

    前面我们学了一行代码搞定WordPress面包屑导航breadcrumb,现在wordpress文档中有一个简单实现的方法,适用于page页面,有二级分类的情况(Simple breadcrumb t ...

  3. Simple Redux

    This is a post that tries to explain the the basics of Redux. We’ll build a minimal working example ...

  4. Linux套接字与虚拟文件系统(1):初始化和创建

    http://www.cppblog.com/qinqing1984/archive/2015/05/03/210521.html 引言   在Unix的世界里,万物皆文件,通过虚拟文件系统VFS,程 ...

  5. 干货,不小心执行了rm -f,除了跑路,如何恢复?https://www.cnblogs.com/justmine/p/10359186.html

    前言 每当我们在生产环境服务器上执行rm命令时,总是提心吊胆的,因为一不小心执行了误删,然后就要准备跑路了,毕竟人不是机器,更何况机器也有bug,呵呵. 那么如果真的删除了不该删除的文件,比如数据库. ...

  6. Cookie实现购物车功能

    这里的购物车暂时存放书,后期把参数改成Object,把方法抽取成接口,只要实现了接口的Object类都可以放进购物项,这样就实现了购物任何物品 使用购物项因为一个购物项可以包含某种商品的数量,总价等, ...

  7. 【转】Fiddler常见用法

    转载自:https://blog.csdn.net/china_jeffery/article/details/82426586 一.会话过滤器 选中[Filters]–> [Use Filte ...

  8. Json断言

    Additionally assert value:添加验证的值,只有勾选了此复选框,才可以在Expected Value中设置期望的值. Match as regular expression:匹配 ...

  9. luogu P4248 [AHOI2013]差异 SAM

    luogu P4248 [AHOI2013]差异 链接 luogu 思路 \(\sum\limits_{1<=i<j<=n}{{len}(T_i)+{len}(T_j)-2*{lcp ...

  10. C函数之index、strtoul

    index函数 函数定义: #include<strings.h> char *index(const char *s, int c); 函数说明: 找出参数s字符串中第一个出现参数c的地 ...