1、Tidb是什么
TiDB是PIng公司设计的开源式HTAP(Hybrid Transactional and Analytical Processing)数据库,结合了传统的RDBMS和NoSQL的最佳特性, TiDB的目标是(Online Transactional Processing)和OLAP (Online Analytical Processing)场景提供一站式解决方案
2、整体架构
TIDB集群主要包括三个核心组件:Tidb Server,PD Server和Tikv Server。此外,还有用于解决用户复杂OLAP需求的TiSpark组件。
(1)Tidb Server
Tidb Server 负责接收SQL请求,处理SQL相关的逻辑,并通过PD找到存储计算所需数据的TiKV地质,与Tikv交互获取数据,最终返回结果,Tidb server是无状态的。其i本身并不存储数据,只负责计算,可以无限水平扩展,可以通过负载均衡组件(如LVS,HAProxy或F5)对外提供统一的接入地址。
(2)PD Server
Placement Driver是整个集群的管理模块,其主要工作有三个:一是存储集群的元信息(某个Key存储在哪个Tikv节点);二是对Tikv集群进行调度和负载均衡,三是分配全局唯一且递增的事物ID
PD通过Raft协议保证数据的安全性,Raft的leader server负责处理所有操作,其余的PD server仅用于保证高可用。
(3)TiKV Server
TiKV Server负责存储数据,从外部看TiKV是一个分布式的提供事物的Key-Value存储引擎,存储数据的单位是Region,每个Region负责存储一个Key Range(从StartKey到EndKey的左闭右开区间)的数据,每个TikKV节点会负责多个Region,Tikv使用Raft协议做复制,保持数据的一致性和容灾,副本以Region为单位进行管理,不同节点上的多个Region构成一个RaftGrpup,互为副本,数据在多个Tikv之间的负载均衡由PD调度。
(4)TiSpark
TiSpark作为TiDB中解决用户复杂OLAP需求的主要组件,将Spark SQL直接运行在TiDB存储层上,同时融合TiKV分布式集群的优势,并融入大数据社区生态,至此,TiDB可以通过一套系统,同时支持OLTP与OLAP,免除用户数据同步的烦恼
二、Tidb+Zabbix的部署
基于zabbix部署来做实验
实验环境部署:
三台主机:
172.25.254.101 server11 zabbix-server mariadb PD1,TiDB
172.25.254.102 server12 Tikv1
172.25.254.103 server13 Tikv2
172.25.254.104 server14 Tivk3
在server11中解压并开启PD
[root@server11 ~]# tar zxf tidb-latest-linux-amd64.tar.gz
[root@server11 ~]# cd tidb-latest-linux-amd64/
[root@server11 tidb-latest-linux-amd64]# ls
bin
[root@server11 tidb-latest-linux-amd64]# ./bin/pd-server --name=pd1 --data-dir=pd1 --client-urls="http://172.25.254.101:2379" --peer-urls="http://172.25.254.101:2380" --initial-cluster="pd1=http://172.25.254.101:2380" --log-file=pd.log &
然后在server2-4三台主机启动tikv
在server12中
[root@server12 ~]# tar zxf tidb-latest-linux-amd64.tar.gz
[root@server12 ~]# ls
anaconda-ks.cfg tidb-latest-linux-amd64 tidb-latest-linux-amd64.tar.gz
[root@server12 ~]# cd tidb-latest-linux-amd64/
[root@server12 tidb-latest-linux-amd64]# ls
bin
[root@server12 tidb-latest-linux-amd64]# ./bin/tikv-server --pd="172.25.254.101:2379" --addr="172.25.254.102:20160" --data-dir=tikv1 --log-file=tikv.log &
[1] 3477
在server13中
[root@server13 tidb-latest-linux-amd64]# ./bin/tikv-server --pd="172.25.254.101:2379" --addr="172.25.254.103:20160" --data-dir=tikv1 --log-file=tikv.log &
在server14中
[root@server14 tidb-latest-linux-amd64]# ./bin/tikv-server --pd="172.25.254.101:2379" --addr="172.25.254.104:20160" --data-dir=tikv1 --log-file=tikv.log &
三台主机启动tikv后,再在server11中启动tidb
[root@server11 tidb-latest-linux-amd64]# ./bin/tidb-server
启动顺序是pd-tikv-tidb不能乱
执行完成后查看端口出现4000说明tidb打开成功
全部启动之后,在server11上做授权(如果没有zabbix库,则要先建立zabbix)
用mysql客户端连接tidb
若能连上,那么说明数据库的配置已经成功了
现在需要在zabbix应用中集成
修改端口(改为4000)
vim /etc/zabbix/zabbix_server.conf
修改zabbix配置文件
vim /etc/zabbix/web/zabbix.conf.php
重启服务,
systemctl restart zabbix-server
systemctl restart zabbix-agent
systemctl restart httpd
重启之后访问172.25.254.101/zabbix,可以访问到zabbix操作界面,才能证明配置成功