mysql
对于生产环境,不要使用 Docker Compose 进行部署,而应使用 Ansible 部署 TiDB 集群。git
确保你的机器上已安装:github
Docker(17.06.0 及以上版本)sql
Docker Composedocker
Gitshell
下载 tidb-docker-compose
express
git clone https://github.com/pingcap/tidb-docker-compose.git
建立并启动集群apache
cd tidb-docker-compose && docker-compose pull # Get the latest Docker images
docker-compose up -d
访问集群vim
mysql -h 127.0.0.1 -P 4000 -u root
访问集群 Grafana 监控页面:http://localhost:3000 默认用户名和密码均为 admin。bash
在完成快速部署后,如下组件已默认部署: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-compose -f generated-docker-compose.yml pull # Get the latest Docker images
docker-compose -f generated-docker-compose.yml up -d
访问集群
mysql -h 127.0.0.1 -P 4000 -u root
访问集群 Grafana 监控页面:http://localhost:3000 默认用户名和密码均为 admin。
若是启用了 tidb-vision,能够经过 http://localhost:8010 查看。
向 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 的详细文档