使用 Docker Compose 快速构建集群

文章目录

[隐藏]

  • 准备环境
  • 快速部署
  • 自定义集群
  • 访问 Spark shell 并加载 TiSpark

本文档介绍如何在单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群。

Docker Compose 可以通过一个 YAML 文件定义多个容器的应用服务,然后一键启动或停止。

准备环境

确保你的机器上已安装:

  • Docker(17.06.0 及以上版本)
  • Docker Compose
  • Git
快速部署

1.下载 tidb-docker-compose

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

2.创建并启动集群

cd tidb-docker-compose && docker-compose pull # Get the latest Docker images  docker-compose up -d  
  1. 访问集群
mysql -h 127.0.0.1 -P 4000 -u root  

访问集群 Grafana 监控页面:http://localhost:3000 默认用户名和密码均为 admin。

集群数据可视化:http://localhost:8010

自定义集群

在完成快速部署后,以下组件已默认部署:3 个 PD,3 个 TiKV,1 个 TiDB 和监控组件 Prometheus,Pushgateway,Grafana 以及 tidb-vision。

如果想自定义集群,可以直接修改 docker-compose.yml,但是手动修改比较繁琐而且容易出错,强烈建议使用 Helm 模板引擎生成 docker-compose.yml 文件。

1.安装 Helm

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

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

如果是 Mac 系统,也可以通过 Homebrew 安装:

brew install kubernetes-helm  

2.下载 tidb-docker-compose

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

3.自定义集群

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 镜像,供开发测试使用。

  • 如果希望从 GitHub 源码构建某个组件的镜像,需要将其 image 字段留空,然后设置其 buildFrom 为 remote。

  • 如果希望从本地已编译好的 binary 文件构建 PD,TiKV 或 TiDB 镜像,需要将其 image 字段留空,然后设置其 buildFrom 为 local,并将已编译好的 binary 拷贝到对应的 pd/bin/pd-server,tikv/bin/tikv-server,tidb/bin/tidb-server。

  • 如果希望从本地构建 tidb-vision 镜像,需要将其 image 字段留空,然后设置其 buildFrom 为 local,并将 tidb-vision 项目拷贝到 tidb-vision/tidb-vision。

4.生成 docker-compose.yml 文件

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

5.使用生成的 docker-compose.yml 创建并启动集群

docker-compose -f generated-docker-compose.yaml pull # Get the latest Docker images  docker-compose -f generated-docker-compose.yml up -d  

6.访问集群

mysql -h 127.0.0.1 -P 4000 -u root  

访问集群 Grafana 监控页面:http://localhost:3000 默认用户名和密码均为 admin。

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

访问 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|  +--------+  

原文出处:pingcap -> https://pingcap.com/docs-cn/op-guide/docker-compose/

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。