TIDB集群安装部署文档

一、组件介绍及安装环境要求

1.组件描述

TiDB Server:

TiDB Server 负责接收 SQL 请求,处理 SQL 相关的逻辑,并通过 PD 找到存储计算所需数据的 TiKV 地址,与 TiKV 交互获取数据,最终返回结果。
TiDB Server 是无状态的,其本身并不存储数据,只负责计算,可以无限水平扩展,可以通过负载均衡组件(如LVS、HAProxy 或 F5)对外提供统一的接入地址。

PD Server:

Placement Driver (简称 PD) 是整个集群的管理模块,其主要工作有三个:

一是存储集群的元信息(某个 Key 存储在哪个 TiKV 节点);

二是对 TiKV 集群进行调度和负载均衡(如数据的迁移、Raft group leader 的迁移等);

三是分配全局唯一且递增的事务 ID。

PD 是一个集群,需要部署奇数个节点,一般线上推荐至少部署 3 个节点。

TiKV Server:

TiKV Server 负责存储数据,从外部看 TiKV 是一个分布式的提供事务的 Key-Value 存储引擎。存储数据的基本单位是 Region,每个 Region 负责存储一个 Key Range(从 StartKey 到 EndKey 的左闭右开区间)的数据,每个 TiKV 节点会负责多个 Region。TiKV 使用 Raft 协议做复制,保持数据的一致性和容灾。副本以 Region 为单位进行管理,不同节点上的多个 Region 构成一个 Raft Group,互为副本。数据在多个 TiKV 之间的负载均衡由 PD 调度,这里也是以 Region 为单位进行调度。

TiSpark:

TiSpark 作为 TiDB 中解决用户复杂 OLAP 需求的主要组件,将 Spark SQL 直接运行在 TiDB 存储层上,同时融合 TiKV 分布式集群的优势,并融入大数据社区生态。至此,TiDB 可以通过一套系统,同时支持 OLTP 与 OLAP,免除用户数据同步的烦恼。

2.系统要求:

Linux 操作系统平台

版本

Red Hat Enterprise Linux 7.3 及以上
CentOS 7.3 及以上
Oracle Enterprise Linux 7.3 及以上
Ubuntu LTS 16.04 及以上

备注:公司内部系统版本为  【 CentOS Linux release 7.3.1611 (Core)  】

3.网络要求

TiDB 作为开源分布式 NewSQL 数据库,其正常运行需要网络环境提供如下的网络端口配置要求,管理员可根据实际环境中 TiDB 组件部署的方案,在网络侧和主机侧开放相关端口:

组件

默认端口

说明

TiDB 4000 应用及 DBA 工具访问通信端口
TiDB 10080 TiDB 状态信息上报通信端口
TiKV 20160 TiKV 通信端口
PD 2379 提供 TiDB 和 PD 通信端口
PD 2380 PD 集群节点间通信端口
Pump 8250 Pump 通信端口
Drainer 8249 Drainer 通信端口
Prometheus 9090 Prometheus 服务通信端口
Pushgateway 9091 TiDB,TiKV,PD 监控聚合和上报端口
Node_exporter 9100 TiDB 集群每个节点的系统信息上报通信端口
Blackbox_exporter 9115 Blackbox_exporter 通信端口,用于 TiDB 集群端口监控
Grafana 3000 Web 监控服务对外服务和客户端(浏览器)访问端口
Grafana 8686 grafana_collector 通信端口,用于将 Dashboard 导出为 PDF 格式
Kafka_exporter 9308 Kafka_exporter 通信端口,用于监控 binlog kafka 集群

 

4.服务器要求

建议 4 台及以上,TiKV 至少 3 实例,且与 TiDB、PD 模块不位于同一主机

二、系统配置

   备注:标红部分为离线安装部署注意事项

 

1.在中控机上安装系统依赖包

在线安装:

以 root 用户登录中控机

如果中控机是 CentOS 7 系统,执行以下命令:

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

离线安装:

 下载 :https://download.pingcap.org/ansible-system-rpms.el7.tar.gz 上传至中控系统,该离线包仅支持 CentOS 7 系统,包含 pip 及 sshpass

 

# tar -xzvf ansible-system-rpms.el7.tar.gz
# cd ansible-system-rpms.el7
# chmod u+x install_ansible_system_rpms.sh
# ./install_ansible_system_rpms.sh

安装完成后,可通过 pip -V 验证 pip 是否安装成功:

2.在中控机上创建 tidb 用户,并生成 ssh key

useradd -m -d /home/tidb tidb
passwd tidb

编辑 /etc/sudoers 
# visudo
tidb ALL=(ALL) NOPASSWD: ALL


su - tidb
ssh-keygen -t rsa


三、集群部署

 

1.安装Ansible 及其依赖

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

    
 

离线安装:

(1)下载 Ansible 2.5 离线安装包 上传至中控机

# tar -xzvf ansible-2.5.0-pip.tar.gz
# cd ansible-2.5.0-pip/
# chmod u+x install_ansible.sh
# ./install_ansible.sh

验证:ansible --version

(2)解压tidb-ansible.tar.gz 到/home/tidb下,剩下操作正常进行即可

  tidb-ansible.tar.gz为本地压缩的文件包,实际备份在192.168.0.81 服务器 ,路径为:/home/tidb/tidb-ansible.tar.gz 

 

 

2.在中控机上配置部署机器 ssh 互信及 sudo 规则

以 tidb 用户登录中控机,将你的部署目标机器 IP 添加到 hosts.ini 文件 [servers] 区块下。

 

3.远程创建用户及安全验证

    $ ansible-playbook -i hosts.ini create_users.yml -u root -k

 

4.检测集群互信状况

 执行以下命令如果所有 server 返回 tidb 表示 ssh 互信配置成功。

ansible -i inventory.ini all -m shell -a 'whoami'

执行以下命令如果所有 server 返回 root 表示 tidb 用户 sudo 免密码配置成功。

ansible -i inventory.ini all -m shell -a 'whoami' -b

 

5.执行 local_prepare.yml playbook,联网下载 TiDB binary 到中控机:

ansible-playbook local_prepare.yml

 

6.初始化系统环境,修改内核参数

ansible-playbook bootstrap.yml

 

7.部署 TiDB 集群软件

ansible-playbook deploy.yml


部署成功展示:

执行成功后节点tidb用户目录下会出现deploy的文件夹

8.启动 TiDB 集群

ansible-playbook start.yml

启动成功截图:

9.测试集群

  • 使用 MySQL 客户端连接测试,TCP 4000 端口是 TiDB 服务默认端口。

  • 通过浏览器访问监控平台。

    访问地址如下:http://192.168.0.111:3000/login 
    账户/密码:admin/admin

四、异常汇总

1.deploy 时提示Make sure NTP service is runnning and ntpstat is synchronised

 

2.启动集群节点时报 Could not find the requested service node_exporter-9100.service: host"

问题:安装部署配置不完善(具体原因待查明)

解决方案:安装第四步骤加上 -k 参数  如下:

ansible-playbook deploy.yml -k

你可能感兴趣的:(数据库)