固定链接 基于滴滴云 DC2 和 Docker Compose 搭建 TiDB

基于滴滴云 DC2 和 Docker Compose 搭建 TiDB

基于滴滴云 DC2 和 Docker Compose 搭建 TiDB

TiDB 简介

TiDB 是一款由 PingCAP 设计的开源分布式 HTAP 数据库。结合了传统的 RDBMS 和 NoSQL 优势,TiDB(NewSQL)具备以下特性:

  • 高度支持 MySQL 协议
  • 轻松应对水平扩展
  • 100% 支持分布式 ACID 事务
  • 基于 Raft 协议保证数据一致性,并实现故障自动恢复
  • 一站式 HTAP 解决方案
  • 云原生 SQL 数据库

TiDB 可以轻松替换现有的以 MySQL 协议为基础的各类数据库中间件或者分库分表方案,减少开发人员对数据库 Scale 细节问题的关注来提升生产力。

TiDB 架构

TiKV Server

TiKV Server 是一个分布式 Key-Value 存储。存储数据的基本单位是 Region,每个 TiKV 节点会负责多个 Region。TiKV 使用 Raft 协议做复制,保持数据的一致性和容灾。副本以 Region 为单位进行管理,不同节点上的多个 Region 构成一个 Raft Group,互为副本。数据在多个 TiKV 之间的负载均衡由 PD 以 Region 为单位进行调度。

PD Server

Placement Driver(简称 PD)是整个集群的管理模块,其主要工作有三个:一是存储集群的元信息(某个 Key 存储在哪个 TiKV 节点);二是对 TiKV 集群进行调度和负载均衡(如数据的迁移、Raft group leader 的迁移等);三是分配全局唯一且递增的事务 ID。PD 是一个集群,需要部署奇数个节点,一般线上推荐至少部署 3 个节点。

TiDB Server

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

TiSpark

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

环境依赖

本文基于 Linux 发行版本 Centos7.x 配合流行的包管理工具 yum 进行演示,因此您需要准备一台 Centos7.x 版本的服务器并安装好 yum。滴滴云 DC2 拥有性价比高、安全可靠和秒级计费等优势,建议您直接购买 DC2 来学习本教程。

以下内容基于滴滴云 DC2(CentOS7.3 16 核 CPU 32GB 内存 90GB HDD 存储按时长计费)公网 IP(116.85.37.138 按出流量计费)进行演示。

安装过程

登录 DC2 并切换到 root 账户

安装 Docker-CE

  1. 切换 yum 源到国内:

  1. 更新 yum 软件源缓存,并安装 Docker-CE:

  1. 启动 Docker-CE:

  1. 测试 Docker-CE 是否安装成功, 输出以下信息,说明安装成功:

安装Docker Compose

Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。下载二进制文件并进行安装:

安装 TiDB

  1. 下载 tidb-docker-compose:

  1. 创建集群:

  1. 启动集群:

验证 TiDB 功能

  1. 安装 MySQL 客户端,并连接 TiDB 默认端口:

  1. 下载 MySQL 验证数据:

  1. 连接 TiDB 默认端口随意操作数据进行验证:

  1. 访问集群 Grafana 监控页面(http://116.85.37.138:3000)以及集群数据可视化页面(http://116.85.37.138:8010)进行验证

参考

https://pingcap.com/docs-cn/
https://legacy.gitbook.com/book/yeasy/docker_practice/details

本文作者:于双羽

您的留言将激励我们越做越好