架构图

节点规划

  1. 120.52.146.213 Control Machine
  2. 120.52.146.214 PD1_TiDB1
  3. 120.52.146.215 PD2_TiDB2
  4. 120.52.146.216 PD3
  5. 120.52.146.217 TiKV1
  6. 120.52.146.218 TiKV2
  7. 120.52.146.219 TiKV3

软件要求

  1. CentOS 7.3 (64 bit) or later with Python 2.7 installed

1、在控制节点上安装依赖软件

  1. # yum -y install epel-release git curl sshpass
  2. # yum -y install python-pip

2、创建 tidb 用户

  1. # useradd tidb
  2. # passwd tidb

3、配置sudo权限

  1. # visudo
  2. tidb ALL=(ALL) NOPASSWD: ALL

4、切换用户,生成SSH-KEY

  1. # su - tidb
  2. $ ssh-keygen -t rsa

5、下载 tidb ansible 项目代码

  1. $ git clone -b v3.0.4 https://github.com/pingcap/tidb-ansible.git

6、安装ansible和相关依赖

  1. $ cd /home/tidb/tidb-ansible
  2. $ sudo pip install -r requirements.txt
  3. $ ansible --version

7、配置SSH互信

  1. $ cd /home/tidb/tidb-ansible
  2. $ vi hosts.ini
  3. [servers]
  4. 120.52.146.214
  5. 120.52.146.215
  6. 120.52.146.216
  7. 120.52.146.217
  8. 120.52.146.218
  9. 120.52.146.219
  10. [all:vars]
  11. username = tidb
  12. ntp_server = pool.ntp.org
  13. $ ansible-playbook -i hosts.ini create_users.yml -u root -k

8、安装NTP

  1. $ cd /home/tidb/tidb-ansible
  2. $ ansible-playbook -i hosts.ini deploy_ntp.yml -u tidb -b

9、挂载磁盘(这一步可以在装系统的时候就准备好)

  1. # fdisk -l
  2. # parted -s -a optimal /dev/sdb mklabel gpt -- mkpart primary ext4 1 -1
  3. # mkfs.ext4 /dev/sdb
  4. # lsblk -f
  5. # vim /etc/fstab
  6. UUID=c51eb23b-195c-4061-92a9-3fad812cc12f /data1 ext4 defaults,nodelalloc,noatime 0 0
  7. # mkdir /data1
  8. # mount -a
  9. # mount -t ext4
  10. /dev/sdb on /data1 type ext4 (rw,noatime,nodelalloc,data=ordered)

10、根据集群架构修改 inventory.ini

  1. ## TiDB Cluster Part
  2. [tidb_servers]
  3. 120.52.146.214
  4. 120.52.146.215
  5. [tikv_servers]
  6. 120.52.146.217
  7. 120.52.146.218
  8. 120.52.146.219
  9. [pd_servers]
  10. 120.52.146.214
  11. 120.52.146.215
  12. 120.52.146.216
  13. [spark_master]
  14. [spark_slaves]
  15. [lightning_server]
  16. [importer_server]
  17. ## Monitoring Part
  18. # prometheus and pushgateway servers
  19. [monitoring_servers]
  20. 120.52.146.214
  21. [grafana_servers]
  22. 120.52.146.214
  23. # node_exporter and blackbox_exporter servers
  24. [monitored_servers]
  25. 120.52.146.214
  26. 120.52.146.215
  27. 120.52.146.216
  28. 120.52.146.217
  29. 120.52.146.218
  30. 120.52.146.219
  31. [alertmanager_servers]
  32. 120.52.146.214

11、下载部署包到本地

  1. $ ansible-playbook local_prepare.yml

12、初始化系统环境修改内核参数

  1. $ ansible-playbook bootstrap.yml

13、部署tidb集群

  1. $ ansible-playbook deploy.yml

14、启动集群

  1. $ ansible-playbook start.yml

15、访问集群

  1. $ mysql -uroot -h 120.52.146.214 -P 4000
  2. Welcome to the MariaDB monitor. Commands end with ; or \g.
  3. Your MySQL connection id is 182
  4. Server version: 5.7.25-TiDB-v3.0.4 MySQL Community Server (Apache License 2.0)
  5. Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
  6. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  7. MySQL [(none)]> show databases;
  8. +--------------------+
  9. | Database |
  10. +--------------------+
  11. | INFORMATION_SCHEMA |
  12. | PERFORMANCE_SCHEMA |
  13. | mysql |
  14. | test |
  15. +--------------------+
  16. 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. 【PHP】系统部署

    1.MySql数据库,单独创建用户和数据库 使用MySql-Front导入,避免使用Navicat导入 2.httpd-vhosts.conf配置 文件位于:D:\Xampp\apache\conf\ ...

  2. spark读写Oracle、hive的艰辛之路(二)-Oracle的date类型

    近期又有需求为:导入Oracle的表到hive库中: 关于spark读取Oracle到hive有以下两点需要说明: 1.数据量较小时,可以直接使用spark.read.jdbc(orclUrl,tab ...

  3. Helm 安装使用

    简介 很多人都使用过Ubuntu下的ap-get或者CentOS下的yum, 这两者都是Linux系统下的包管理工具.采用apt-get/yum,应用开发者可以管理应用包之间的依赖关系,发布应用:用户 ...

  4. Chrome插件安装和用法

    XPath Helper 下载插件,拖入chrome://extensions/ 使用方法:ctrl+shift+x呼出 JSONView的使用: 安装JSONView插件 下载插件,拖入chrome ...

  5. RxSwift 在本质上简化了开发异步程序

    RxSwift 是一个组合异步和事件驱动编程的库,通过使用可观察序列和功能样式运算符来,从而允许通过调度程序进行参数化执行. RxSwift 在本质上简化了开发异步程序,允许代码对新数据作出反应,并以 ...

  6. Common Substrings POJ - 3415 (后缀自动机)

    Common Substrings \[ Time Limit: 5000 ms\quad Memory Limit: 65536 kB \] 题意 给出两个字符串,要求两个字符串公共子串长度不小于 ...

  7. [PHP] Laravel 5.5 的 BCrypt对密码进行加密及密码验证

    Laravel 5.5 的 BCrypt对密码进行加密及密码验证 一.加密 方法1) $password= Hash::make('密码'); 方法2) /也可直接使用 bcrypt 的 functi ...

  8. Java算法考试笔记

    1.快速构建排列树: void BackTrace(int t){//排列树 if(t<N){//如果没有到叶子结点 for(int i=t;i<N;i++){ swap(x,t,i); ...

  9. 选择排序之python实现

    def findsmallestindex(arr): smallnum = arr[0] smallindex = 0 # 寻找最小元素的位置 for i in range(1,len(arr)): ...

  10. 启动hadoop报does not contain a valid host:port authority:node2_1:9000

    报错:启动hadoop报does not contain a valid host:port authority:node2_1:9000 原因:主机的hostname不合法,修改为不包含着‘.’ ' ...