TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和 MySQL 生态等重要特性。目标是为用户提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解决方案。TiDB 适合高可用、强一致要求较高、数据规模较大等各种应用场景。
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,免除用户数据同步的烦恼。
主机 | 服务 |
---|---|
server5:172.25.12.5 | zabbix-server pd-server tidb-server |
server6:172.25.12.6 | tikv-server |
server7:172.25.12.7 | tikv-server |
server8:172.25.12.8 | tikv-server |
tar zxf tidb-latest-linux-amd64.tar.gz -C /usr/local ##解压 cd /usr/local ln -s tidb-latest-linux-amd64/ tidb ##建立软连接
cd /user/local/tidb ./bin/pd-server --name=pd1 --data-dir=pd1 --client-urls="http://172.25.12.5:2379" --peer-urls="http://172.25.12.5:2380" --initial-cluster="pd1=http://172.25.12.5:2380" --log-file=pd.log &
查看端口2379和2380
server6
./bin/tikv-server --pd="172.25.12.5:2379" --addr="172.25.12.6:20160" --data-dir=tikv1 --log-file=tikv.log &
server7
./bin/tikv-server --pd="172.25.12.5:2379" --addr="172.25.12.7:20160" --data-dir=tikv1 --log-file=tikv.log &
server8
./bin/tikv-server --pd="172.25.12.5:2379" --addr="172.25.12.8:20160" --data-dir=tikv1 --log-file=tikv.log &
./bin/tidb-server &
查看端口4000
mysql -h 172.25.12.5 -P 4000 -uroot ##数据库通过4000端口连接tidb
create database zabbix character set utf8 collate utf8_bin; ##创建数据库 CREATE USER 'zabbix'@'%' IDENTIFIED BY 'westos'; ##创建用户 grant all privileges on *.* to 'zabbix'@'%'; ##用户授权
cd /usr/share/doc/zabbix-server-mysql-4.0.32/ zcat create.sql.gz | mysql -h 172.25.12.5 -P 4000 -uroot zabbix
vim /etc/zabbix/zabbix_server.conf 91 DBHost=172.25.12.5 124 DBPassword=westos 139 DBPort=4000
vim /etc/zabbix/web/zabbix.conf.php $DB['TYPE'] = 'MYSQL'; $DB['SERVER'] = '172.25.12.5'; $DB['PORT'] = '4000'; $DB['DATABASE'] = 'zabbix'; $DB['USER'] = 'zabbix'; $DB['PASSWORD'] = 'westos';
systemctl restart zabbix-server.service