基於 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 為單位進行排程。
延伸閱讀:
https : //pingcap.com/blog-cn/tidb-internal-1/
PD Server
Placement Driver(簡稱 PD)是整個叢集的管理模組,其主要工作有三個:一是儲存叢集的元資訊(某個 Key 儲存在哪個 TiKV 節點);二是對 TiKV 叢集進行排程和負載均衡(如資料的遷移、Raft group leader 的遷移等);三是分配全域性唯一且遞增的事務 ID。PD 是一個叢集,需要部署奇數個節點,一般線上推薦至少部署 3 個節點。
延伸閱讀:
https : //pingcap.com/blog-cn/tidb-internal-3/
TiDB Server
TiDB Server 負責接收 SQL 請求,處理 SQL 相關的邏輯,並透過 PD 找到儲存計算所需資料的 TiKV 地址,與 TiKV 互動獲取資料,最終返回結果。TiDB Server 是無狀態的,其本身並不儲存資料,只負責計算,可以無限水平擴充套件,可以透過負載均衡元件(如 LVS、HAProxy 或 F5)對外提供統一的接入地址。
延伸閱讀:
https : //pingcap.com/blog-cn/tidb-internal-2/
TiSpark
TiSpark 作為 TiDB 中解決使用者複雜 OLAP 需求的主要元件,將 Spark SQL 直接執行在 TiDB 儲存層上,同時融合 TiKV 分散式叢集的優勢,並融入大資料社群生態。至此,TiDB 可以透過一套系統,同時支援 OLTP 與 OLAP,免除使用者資料同步的煩惱。
環境依賴
本文基於 Linux 發行版本 Centos7.x 配合流行的包管理工具 yum 進行演示,因此您需要準備一臺 Centos7.x 版本的伺服器並安裝好 yum。 滴滴雲 DC2 擁有價效比高、安全可靠和秒級計費等優勢,建議您直接 來學習本教程。
以下內容基於 滴滴雲 DC2(CentOS7.3 16 核 CPU 32GB 記憶體 90GB HDD 儲存按時長計費)公網 IP(116.85.37.138 按出流量計費)進行演示。
安裝過程
登入 DC2 並切換到 root 賬戶
$ ssh dc2 - user @ 116.85.37.138
$ sudo - iu root
安裝 Docker-CE
-
切換 yum 源到國內:
-
更新 yum 軟體源快取,並安裝 Docker-CE:
$ yum makecache fast
$ yum install docker - ce
-
啟動 Docker-CE:
$ systemctl enable docker
$ systemctl start docker
-
測試 Docker-CE 是否安裝成功, 輸出以下資訊,說明安裝成功:
安裝Docker Compose
Compose 專案是 Docker 官方的開源專案,負責實現對 Docker 容器叢集的快速編排。下載二進位制檔案並進行安裝:
$ curl - L https : //github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/
docker-compose
$ chmod + x / usr / local / bin / docker - compose
安裝 TiDB
-
下載 tidb-docker-compose:
$ git clone https : //github.com/pingcap/tidb-docker-compose.git
-
建立叢集:
-
啟動叢集:
驗證 TiDB 功能
-
安裝 MySQL 客戶端,並連線 TiDB 預設埠:
$ yum install - y mysql
-
下載 MySQL 驗證資料:
$ git clone https : //github.com/datacharmer/test_db.git
-
連線 TiDB 預設埠隨意運算元據進行驗證:
-
訪問叢集 Grafana 監控頁面()以及叢集資料視覺化頁面()進行驗證
參考
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559758/viewspace-2284751/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [Prometheus+Grafana系列]基於docker-compose搭建PrometheusGrafanaDocker
- Docker 和 Docker ComposeDocker
- Mac基於docker-compose 安裝 oracleMacDockerOracle
- 基於滴滴雲 DC2 搭建 VPP 應用例項
- mac搭建docker、docker-compose環境MacDocker
- Mysql主從搭建(docker compose)MySqlDocker
- RabbitMQ基於docker-compose的安裝配置MQDocker
- Docker-Compose基礎Docker
- docker-compose搭建php環境DockerPHP
- docker-compose搭建gitlab服務DockerGitlab
- Docker折騰記: (2)基於docker-compose構建yapi容器DockerAPI
- Docker, Dockerfile, 和Docker Compose區別 | BaeldungDocker
- 關於docker-Compose基本使用Docker
- 基於ECS快速搭建Docker環境Docker
- Kafka基於docker-compose單結點部署SASL_PLAINTEXTKafkaDockerAI
- Linux 上部署 docker,基於 docker 搭建 lnmp 環境LinuxDockerLNMP
- 使用 docker-compose 搭建 Laravel 環境 (三)DockerLaravel
- docker-compose搭建percona-xtradb-cluster8.0Docker
- Linux CentOS 安裝 docker 和 docker-composeLinuxCentOSDocker
- Centos7.9安裝Docker和Docker composeCentOSDocker
- 使用 Docker Compose 本地部署基於 Sentinel 的高可用 Redis 叢集DockerRedis
- 基於Linux的docker mysql主從搭建LinuxDockerMySql
- Docker極簡入門:使用Docker-Compose 搭建redis叢集DockerRedis
- docker composeDocker
- Docker Compose搭建MySQL主從複製叢集DockerMySql
- 用 docker-compose 搭建一個 rabbitmq 叢集DockerMQ
- kali簡單安裝docker和docker-composeDocker
- linux中利用docker和docker-compose搭建lnmp環境詳解10分鐘快速完成LinuxDockerLNMP
- DolphinScheduler快速上手:基於Docker Compose的安裝與配置全攻略Docker
- Dockerfile指令與Docker-compose容器編排-搭建docker私有倉庫Docker
- docker-compose 搭建 Prometheus+Grafana監控系統DockerPrometheusGrafana
- docker-compose安裝pgsql和pgvectorDockerSQL
- Docker:Docker Compose 詳解Docker
- 基於 AutoFlow 快速搭建基於 TiDB 向量搜尋的本地知識庫問答機器人TiDB機器人
- docker compose 用法Docker
- Docker Compose fileDocker
- Docker Compose 案例Docker
- docker compose 指令Docker