使用Docker-Compose快速部署TiDB集群環境

      網友投稿 1608 2025-04-03

      一、快速部署

      1.1、下載tidb-docker-compose

      1.2、創建并啟動集群

      一、快速部署

      1.1、下載tidb-docker-compose

      1.2、創建并啟動集群

      二、訪問集群

      2.1、訪問TiDB

      2.2、訪問集群 Grafana 監控

      2.3、集群數據可視化

      2.4、訪問Spark Web UI

      三、自定義集群

      四、訪問 Spark shell 并加載 TiSpark

      一、快速部署

      參考連接:https://docs.pingcap.com/zh/tidb/v3.0/deploy-test-cluster-using-docker-compose

      使用Docker-Compose快速部署TiDB集群環境

      本文檔介紹如何在單機上通過 Docker Compose 快速一鍵部署一套 TiDB 測試集群。Docker Compose 可以通過一個 YAML 文件定義多個容器的應用服務,然后一鍵啟動或停止。

      確保你的機器上已安裝:

      Docker(17.06.0 及以上版本)

      Docker Compose

      Git

      1.1、下載tidb-docker-compose

      [root@docker35 ~]# git clone https://github.com/pingcap/tidb-docker-compose.git Cloning into 'tidb-docker-compose'... remote: Enumerating objects: 8, done. remote: Counting objects: 100% (8/8), done. remote: Compressing objects: 100% (8/8), done. remote: Total 554 (delta 0), reused 6 (delta 0), pack-reused 546 Receiving objects: 100% (554/554), 284.17 KiB | 204.00 KiB/s, done. Resolving deltas: 100% (243/243), done.

      1.2、創建并啟動集群

      創建并啟動集群,獲取最新 Docker 鏡像:

      cd tidb-docker-compose && docker-compose pull && docker-compose up -d

      執行過程:

      [root@docker35 ~]# cd tidb-docker-compose/ [root@docker35 tidb-docker-compose]# ll total 64 drwxr-xr-x 3 root root 60 Apr 14 15:13 compose drwxr-xr-x 4 root root 4096 Apr 14 15:13 config drwxr-xr-x 3 root root 59 Apr 14 15:13 dashboard-installer drwxr-xr-x 3 root root 19 Apr 14 15:13 docker -rw-r--r-- 1 root root 11343 Apr 14 15:13 docker-compose-binlog.yml -rw-r--r-- 1 root root 292 Apr 14 15:13 docker-compose-test.yml -rw-r--r-- 1 root root 1566 Apr 14 15:13 docker-compose-tiflash-nightly.yml -rw-r--r-- 1 root root 5445 Apr 14 15:13 docker-compose.yml -rw-r--r-- 1 root root 4736 Apr 14 15:13 docker-swarm.yml -rw-r--r-- 1 root root 11294 Apr 14 15:13 LICENSE drwxr-xr-x 2 root root 24 Apr 14 15:13 pd -rw-r--r-- 1 root root 11335 Apr 14 15:13 README.md drwxr-xr-x 2 root root 24 Apr 14 15:13 tidb drwxr-xr-x 2 root root 24 Apr 14 15:13 tidb-binlog drwxr-xr-x 2 root root 24 Apr 14 15:13 tidb-vision drwxr-xr-x 2 root root 24 Apr 14 15:13 tikv drwxr-xr-x 6 root root 95 Apr 14 15:13 tispark drwxr-xr-x 2 root root 29 Apr 14 15:13 tools [root@docker35 tidb-docker-compose]# du -sh . 3.3M . [root@docker35 tidb-docker-compose]# docker-compose pull && docker-compose up -d Pulling pd0 ... done Pulling pd1 ... done Pulling pd2 ... done Pulling tikv0 ... done Pulling tikv1 ... done Pulling tikv2 ... done Pulling tidb ... done Pulling tispark-master ... done Pulling tispark-slave0 ... done Pulling tidb-vision ... done Pulling pushgateway ... done Pulling prometheus ... done Pulling grafana ... done Building with native build. Learn about native build in Compose here: https://docs.docker.com/go/compose-native-build/ Creating network "tidb-docker-compose_default" with the default driver Creating tidb-docker-compose_prometheus_1 ... done Creating tidb-docker-compose_grafana_1 ... done Creating tidb-docker-compose_pd0_1 ... done Creating tidb-docker-compose_pd2_1 ... done Creating tidb-docker-compose_pd1_1 ... done Creating tidb-docker-compose_tidb-vision_1 ... done Creating tidb-docker-compose_pushgateway_1 ... done Creating tidb-docker-compose_tikv2_1 ... done Creating tidb-docker-compose_tikv0_1 ... done Creating tidb-docker-compose_tikv1_1 ... done Creating tidb-docker-compose_tidb_1 ... done Creating tidb-docker-compose_tispark-master_1 ... done Creating tidb-docker-compose_tispark-slave0_1 ... done [root@docker35 tidb-docker-compose]# docker ps | grep tidb 0f0c9308b722 pingcap/tispark:latest "/opt/spark/sbin/sta…" 20 minutes ago Up 26 seconds 0.0.0.0:38081->38081/tcp tidb-docker-compose_tispark-slave0_1 b0cfd6181ced pingcap/tispark:latest "/opt/spark/sbin/sta…" 20 minutes ago Up 26 seconds 0.0.0.0:7077->7077/tcp, 0.0.0.0:8080->8080/tcp tidb-docker-compose_tispark-master_1 8d3eb1f375c4 pingcap/tidb:latest "/tidb-server --stor…" 20 minutes ago Up 25 seconds 0.0.0.0:4000->4000/tcp, 0.0.0.0:10080->10080/tcp tidb-docker-compose_tidb_1 15c524d6a77d pingcap/tikv:latest "/tikv-server --addr…" 20 minutes ago Up 2 seconds 20160/tcp tidb-docker-compose_tikv2_1 34e5e542e6af pingcap/tikv:latest "/tikv-server --addr…" 20 minutes ago Up 1 second 20160/tcp tidb-docker-compose_tikv1_1 cf16e9611c14 pingcap/tikv:latest "/tikv-server --addr…" 20 minutes ago Up 32 seconds 20160/tcp tidb-docker-compose_tikv0_1 560daefe9121 pingcap/tidb-vision:latest "/bin/sh -c 'sed -i …" 20 minutes ago Up 26 seconds 80/tcp, 443/tcp, 2015/tcp, 0.0.0.0:8010->8010/tcp tidb-docker-compose_tidb-vision_1 25ba4d9a30d7 prom/pushgateway:v0.3.1 "/bin/pushgateway --…" 20 minutes ago Up 35 seconds 9091/tcp tidb-docker-compose_pushgateway_1 cd1c88da452c pingcap/pd:latest "/pd-server --name=p…" 20 minutes ago Up 26 seconds 2380/tcp, 0.0.0.0:1029->2379/tcp tidb-docker-compose_pd0_1 ce363e945cdc prom/prometheus:v2.2.1 "/bin/prometheus --l…" 20 minutes ago Up 36 seconds 0.0.0.0:9090->9090/tcp tidb-docker-compose_prometheus_1 5768329d5789 pingcap/pd:latest "/pd-server --name=p…" 20 minutes ago Up 32 seconds 2380/tcp, 0.0.0.0:1027->2379/tcp tidb-docker-compose_pd2_1 f132ec8ae049 pingcap/pd:latest "/pd-server --name=p…" 20 minutes ago Up 32 seconds 2380/tcp, 0.0.0.0:1028->2379/tcp tidb-docker-compose_pd1_1 cc36a50a0d74 grafana/grafana:6.0.1 "/run.sh" 20 minutes ago Up 33 seconds 0.0.0.0:3000->3000/tcp tidb-docker-compose_grafana_1 [root@docker35 tidb-docker-compose]# docker ps | grep tidb | wc -l 13

      二、訪問集群

      2.1、訪問TiDB

      [root@docker35 tidb-docker-compose]# mysql -h 127.0.0.1 -P 4000 -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.7.25-TiDB-v5.0.0 TiDB Server (Apache License 2.0) Community Edition, MySQL 5.7 compatible Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | INFORMATION_SCHEMA | | METRICS_SCHEMA | | PERFORMANCE_SCHEMA | | mysql | | test | +--------------------+ 5 rows in set (0.00 sec) mysql> create database lhrdb charset utf8mb4; Query OK, 0 rows affected (0.07 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | INFORMATION_SCHEMA | | METRICS_SCHEMA | | PERFORMANCE_SCHEMA | | lhrdb | | mysql | | test | +--------------------+ 6 rows in set (0.00 sec)

      2.2、訪問集群 Grafana 監控

      訪問集群 Grafana 監控頁面:http://localhost:3000 默認用戶名和密碼均為 admin。如下內容都可以監控到:

      例如:

      2.3、集群數據可視化

      集群數據可視化(https://github.com/pingcap/tidb-vision):http://localhost:8010

      如果啟用了 tidb-vision,可以通過 http://localhost:8010 查看。

      2.4、訪問Spark Web UI

      http://192.168.66.35:8080/

      三、自定義集群

      在完成快速部署后,以下組件已默認部署:3 個 PD,3 個 TiKV,1 個 TiDB 和監控組件 prometheus,Pushgateway,Grafana 以及 tidb-vision。

      如果想自定義集群,可以直接修改 docker-compose.yml,但是手動修改比較繁瑣而且容易出錯,強烈建議使用 Helm 模板引擎生成 docker-compose.yml 文件。

      安裝 Helm

      Helm 可以用作模板渲染引擎,只需要下載其 binary 文件即可以使用。

      curl https://raw.githubusercontent.com/Kubernetes/helm/master/scripts/get | bash

      如果是 Mac 系統,也可以通過 Homebrew 安裝:

      brew install Kubernetes-helm

      下載 tidb-docker-compose

      git clone https://github.com/pingcap/tidb-docker-compose.git

      自定義集群

      cd tidb-docker-compose && cp compose/values.yaml values.yaml && vim values.yaml

      修改 values.yaml 里面的配置,例如集群規模,TiDB 鏡像版本等。

      tidb-vision 是 TiDB 集群可視化頁面,可以可視化地顯示 PD 對 TiKV 數據的調度。如果不想部署該組件,可以將 tidbVision 項留空。

      PD,TiKV,TiDB 和 tidb-vision 支持從 GitHub 源碼或本地文件構建 Docker 鏡像,供開發測試使用。

      如果希望從本地已編譯好的 binary 文件構建 PD,TiKV 或 TiDB 鏡像,需要將其 image 字段留空,并將已編譯好的 binary 拷貝到對應的 pd/bin/pd-server,tikv/bin/tikv-server,tidb/bin/tidb-server。

      如果希望從本地構建 tidb-vision 鏡像,需要將其 image 字段留空,并將 tidb-vision 項目拷貝到 tidb-vision/tidb-vision。

      生成 docker-compose.yml 文件

      helm template -f values.yaml compose > generated-docker-compose.yml

      使用生成的 docker-compose.yml 創建并啟動集群

      獲取最新 Docker 鏡像:

      docker-compose -f generated-docker-compose.yml pull docker-compose -f generated-docker-compose.yml up -d

      訪問集群

      mysql -h 127.0.0.1 -P 4000 -u root

      四、訪問 Spark shell 并加載 TiSpark

      向 TiDB 集群中插入一些樣本數據:

      docker-compose exec tispark-master bash && cd /opt/spark/data/tispark-sample-data && mysql -h tidb -P 4000 -u root < dss.ddl

      當樣本數據加載到 TiDB 集群之后,可以使用 docker-compose exec tispark-master /opt/spark/bin/spark-shell 來訪問 Spark shell。

      docker-compose exec tispark-master /opt/spark/bin/spark-shell ... Spark context available as 'sc' (master = local[*], app id = local-1527045927617). Spark session available as 'spark'. Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /___/ .__/\_,_/_/ /_/\_\ version 2.1.1 /_/ Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_172) Type in expressions to have them evaluated. Type :help for more information. scala> import org.apache.spark.sql.TiContext ... scala> val ti = new TiContext(spark) ... scala> ti.tidbMapDatabase("TPCH_001") ... scala> spark.sql("select count(*) from lineitem").show +--------+ |count(1)| +--------+ | 60175| +--------+

      你也可以通過 Python 或 R 來訪問 Spark:

      docker-compose exec tispark-master /opt/spark/bin/pyspark && docker-compose exec tispark-master /opt/spark/bin/sparkR

      更多關于 TiSpark 的信息,參見 TiSpark 的詳細文檔,連接:https://docs.pingcap.com/zh/tidb/v3.0/get-started-with-tispark。

      Docker

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:華為云WeLink云空間專題(下篇:怎么使用WeLink云空間?)
      下一篇:表格內打不上字(表格里為啥打不上字)
      相關文章
      亚洲精品天堂在线观看| 亚洲免费闲人蜜桃| 国产成人精品日本亚洲语音| 亚洲一级大黄大色毛片| 亚洲国产精品综合福利专区| 亚洲综合久久综合激情久久 | 亚洲综合网站色欲色欲| 亚洲成片观看四虎永久| 国产亚洲精品2021自在线| 国产精品亚洲综合一区在线观看 | 国产亚洲精品VA片在线播放| 亚洲sss综合天堂久久久| 亚洲国产成人99精品激情在线| 亚洲va乱码一区二区三区| 亚洲另类图片另类电影| wwwxxx亚洲| 亚洲熟妇成人精品一区| 亚洲国产成人AV在线播放| 亚洲国产一区二区三区在线观看| 亚洲精品无码国产片| 亚洲国产精品嫩草影院| www亚洲精品久久久乳| 国产成人亚洲综合a∨| 亚洲国产小视频精品久久久三级| 亚洲日本在线观看视频| 国产亚洲日韩在线三区| 国产成人亚洲综合色影视| 亚洲av无码一区二区三区乱子伦| 亚洲福利在线视频| 亚洲日韩乱码久久久久久| 精品日韩99亚洲的在线发布| 亚洲精品永久在线观看| 老司机亚洲精品影院在线观看| 亚洲精品高清在线| 自拍偷自拍亚洲精品情侣| 亚洲AV永久纯肉无码精品动漫| 亚洲激情在线视频| 亚洲一区二区三区精品视频| 亚洲人成未满十八禁网站| 亚洲成av人片天堂网老年人| 亚洲午夜国产精品无码老牛影视|