如何从 0 到 1 部署 TiDB 本地集群

分类:编程技术 时间:2024-02-20 15:41 浏览:0 评论:0
0
本文主要讲解“如何从 0 到 1 部署 TiDB 本地集群”。文章中的讲解内容简单明了,易学易懂。请大家按照小编的思路慢慢深入,一起研究学习《如何从0到1部署TiDB本地集群?》

TiDB 是一个开源的 NewSQL 数据库。我们看一下官方的介绍:

TiDB是PingCAP自主设计开发的开源分布式关系数据库。一种融合分布式数据库产品,支持在线事务处理和在线分析处理(Hybrid Transactional and AnalyticalProcessing,HTAP)。具有水平扩容、金融级高可用、实时HTAP、云原生分布式数据库,兼容MySQL 5.7。协议、MySQL生态等重要特性。目标是为用户提供一站式OLTP(在线事务处理)、OLAP(在线分析)ytical 处理)和 HTAP 解决方案。 TiDB 适合高可用、强一致性需求、大数据规模等多种应用场景。

这里有几个关键点:

分布式关系数据库

兼容MySQL5.7

支持HTAP(在线事务处理和在线分析处理)

对金融行业有很好的支持,支持高可用、强一致性和大数据场景

基本概念

这里介绍一下 TiDB 中的一些重要概念:

PD:Placement Driver 是 TiDB 的主控节点,负责集群的整体调度、全局 ID 生成、全局时间戳 TSO。 (集中计时)生成。换句话说,全局时钟是在该节点上实现的。

TiKV:TiDB 的存储层是一个满足 ACID 事务的分布式事务型键值数据库,使用 Raft 协议来保证多ti-复制一致性,同时还存储统计数据。

TiFlash:HTAP表单的关键组件。它是 TiKV 的列存储扩展。它提供了良好的隔离性,同时也兼顾了强一致性。

Monitor:TiDB监控组件

实验环境

由于我本地资源限制,我们采用快速部署。

快速部署 TiDB 有两种方式:

第一类:使用 TiUP Playground 快速部署本地测试环境

适用场景:使用本地 Mac 或独立的Linux环境,快速部署TiDB集群。您可以体验 TiDB 集群的基本架构,以及 TiDB、TiKV、PD、监控等基本组件的操作。

第二:使用 TiUP 集群在单机上模拟生产环境部署步骤

希望用单台 Linux 服务器体验 TiDB 和 simu 的最小完整拓扑集群后期生产部署步骤。

这里我使用第二种方法。

根据官方描述,TiDB 已经在 CentOS 7.3 上进行了广泛测试,建议部署在 CentOS 7.3 及以上版本。

本地环境:VMware虚拟机,操作系统CentOS7.6

开始部署

我们按照官方步骤安装< /p>

1.关闭防火墙

systemctl stop firewalld service iptables stop

2.下载并安装TiUP,命令及结果如下

[root @master ~]#curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap .com/install.sh | sh % Total % Received % Xferd Average Speed Time Time Time Current   k 警告:通过互联网添加根证书:https://tiup-mirrors .pingcap.com/root.json 您可以通过删除 /root/.tiup 来撤销此证书/bin/7b8e153f2e2d0928.root.json 设置镜像为https://tiup-mirrors.pingcap.com 成功 检测到shell:bash Shell配置文件:/root/.bash_profile /root/.bash_profile 已修改为将 tiup 添加到 PATH 打开新终端或源 /root/.bash_profile 来使用它安装路径:/root/.tiup/bin/tiup ========== ======================= ============= 尝试一下:tiup Playground ======= ========================================

3.安装TiUP的集群组件

首先声明全局环境变量,否则找不到tiup命令:

source .bash_profile

执行安装cluster命令:

tiup cluster

输出如下:

[root@master ~]# tiup cluster 组件`cluster`未安装;从存储库下载。下载 https://tiup-mirrors.pingcap.com/cluster-v1.3.1-linux-amd64 .tar.gz 10.05 MiB / 10.05 MiB 100.00% 13.05 MiB p/s;启动组件 `cluster`: /root/.tiup/components/cluster/v1.3.1/tiup-cluster 部署 TiDB 集群用于生产 用法:tiup cluster [command] 可用命令:勾选 Perform集群的预检检查。部署生产集群 启动 TiDB 集群 停止 停止 TiDB 集群 重启 重启 TiDB 集群 缩容 TiDB 集群 横向扩展 横向扩展 TiDB 集群 销毁 销毁指定集群 clean (实验性) 清理指定集群升级升级指定的 TiDB 集群 exec 在 tidb 集群显示中的主机上运行 shell 命令 显示 TiDB 集群的信息 prune 销毁和删除处于 tombstone 状态的实例列表 列出所有集群audit 显示集群操作的审核日志 import 导入现有的 TiDB 集群TiDB-Ansible edit-config 编辑 TiDB 集群配置。将使用环境变量 EDITOR 中的编辑器,默认使用 vi reload 重新加载 TiDB 集群的配置,并在需要时重新启动 patch 将远程包替换为指定包并重新启动服务 rename 重命名集群启用 启动时自动启用 TiDB 集群禁用禁止自动启动 TiDB 集群在引导时自动帮助有关任何命令的帮助标志:-h,--帮助 tiup --ssh 字符串(实验)执行程序类型:'builtin','system','none'。 - -ssh-timeout uint 通过 SSH 连接主机的超时(以秒为单位),对于不需要 SSH 连接的操作将被忽略。 (默认 5) -v, --version tiup 的版本 --wait-timeout uint 等待操作完成的超时(以秒为单位),忽略不适合的操作。 (默认 120) -y, --yes 跳过所有确认和断言 'yes' 使用“tiup cluster help [command]”获取有关命令的更多信息。

4.增加sshd服务的连接限制

这里需要使用root权限,具体修改/etc/ssh/sshd_config文件下的参数配置:

MaxSessions 20

修改后重启sshd:

[root@master ~ ]# service sshd restart 重定向到/bin/systemctl restart sshd.service

5.编辑集群配置n 模板文件

我们将此文件命名为topo.yaml,内容如下:

# # 全局变量应用于所有部署并作为默认值# # 部署(如果缺少特定部署值)。 global: user: "tidb" ssh_port: 22 deploy_dir: "/tidb-deploy" data_dir: "/tidb-data" # # 监控变量应用于所有机器。受监控:node_exporter_port:9100 blackbox_exporter_port:9 115 server_configs:tidb:log .slow-threshold:300 tikv:readpool.storage.use-unified-pool:false readpool.coprocessor.use-unified-pool:true pd:replication.enable-放置规则:true 复制.位置标签:[“主机”] tiflash:logger.level:“信息” pd_servers:-主机:192.168.59.146 tidb_servers:-主机:192.168.59.146 tikv_servers:-主机:192.168.59.146 端口: 20160 status_port: 20230 config: server.labels: { host: "logic-host-1" } # - host: 192.168.59.146 # port: 20161 # status_port : 20231 # config: # server.labels : { host: "logic-host-2" } # - 主机: 192.168.59.146 # 端口: 20162 # status_port: 20232 # config: # server.labels: { 主机: "logic-host-3" } tiflash_servers: - 主机: 192.168.59.146< /pre>

这里需要注意两点:

文件中的host为部署TiDB的服务器IP

默认ssh_port为22

官方文件中的tikv_servers有3个节点,我这里设置为只有1个节点,原因是本地配置多个节点时,只有一个节点可以启动成功

6 . 部署集群

部署集群的命令如下:

tiup cluster deploy   ./topo.yaml --user root -p

上面的 cluster-name 是集群名称,tidb-version 是指 TiDB 版本号,可以通过 tiup list tidb 命令查看,这里我们使用 v3。 1.2.集群名称为mytidb-cluster,命令如下:

tiup cluster deploy mytidb-cluster v3.1.2 ./topo.yaml - -user root -p

以下为部署时的日志输出:

[root@master ~]# tiup cluster deploy mytidb-cluster v3.1.2 ./topo.yaml -- user root -p GettingComponent ` cluster`: /root/.tiup/components/cluster/v1.3.1/tiup-cluster deploy mytidb-cluster v3.1.2 ./topo.yaml --user root -p 请确认您的拓扑: 集群类型:tidb 集群名称: mytidb-cluster 集群版本:v3.1.2 类型 主机端口 操作系统/Arch 目录 ---- ---- ---- -----   d-2379 tikv 192.168.59.146 20160/20230 Linux/X86_64/TIDB-DEPLOY /TIKV-20160,/TIDB-DATA/TIKV-20160 TIDB 192.168.59.146 4000/10080 Linux/X8644/TIDB-4000 TIflash 192.168.59.146 9000/8123/3930/20170/20292/8234 Linux/ X86_64/TIDB-部署/ TIFLASH-9000,/TIDB-DATA/Tiflash-9000 普罗米修斯 192.168。 59.146 9090 Linux/X86_64/TIDB-DEPLOY/Prometheus- 9090,/tidb-data/prometheus-9090 grafana 192.168.59.146 3000 linux/x86_64 /tidb-deploy/grafana-3000 注意: 1. 如果拓扑不是您期望的,检查您的 yaml 文件。 2.请确认没有po同一主机中的 rt/目录冲突。你想继续吗? [y/N]: y 输入 SSH 密码: + 生成 SSH 密钥 ... 完成 + 下载 TiDB 组件 - 下载 pd:v3.1.2 (linux/amd64) ... 完成 - 下载 tikv:v3.1.2 (linux/amd64) ) ... 完成 - 下载 tidb:v3.1.2 (linux/amd64) ... 完成 - 下载 tiflash:v3.1.2 (linux/ amd64) ... 完成 - 下载 prometheus:v3.1.2 (linux/amd64) 。 .. 完成 - 下载 grafana:v3.1.2 (linux/amd64) ... 完成 - 下载 node_exporter:v0.17.0 (linux/amd64) ... 完成 - 下载 blackbox_exporter:v0.12.0 (linux/amd64) ...完成 + 初始化目标主机环境 - 准备 192.168.59.146:22 ... 完成 + 复制文件 - 复制 pd -> 192.168.59.146 ... 完成 - 复制 tikv -> 192.168.59.146 ... 完成 - 复制 tidb -> 192.168 .59.146 ... 完成 - 复制 tiflash -> 192.168.59.146 ... 完成 - 复制 prometheus -> 192.168.59.146 ... 完成 - 复制 grafana -> 192.168.59.146 ... 完成 - 复制 node_exporter -> 192.168.59.146 ... 完成 - 复制 blackbox_exporter -> 192.168.59.146 ... 完成 + 检查统计数据us 启用组件 pd 启用实例 pd 192.168.59.146:2379 启用 pd 192.168.59.146:2379 success 启用组件 node_exporter 启用组件 blackbox_exporter 启用 bling 组件 tikv 启用实例 tikv 192.168.59.146:20160 启用 tikv 192.1 68.59.146:20160 成功 启用组件 tidb 启用instance tidb 192.168.59.146:4000 启用 tidb 192.168.59.146:4000 success 启用组件 tiflash 启用实例 tiflash 192.168.59.146:9000 启用 tiflash 192.168.59.146:9000 success 启用组件 prometheus 启用实例 prometheus 192.168.59.146:9090 启用普罗米修斯 192.168.59.146 :9090 success 启用组件grafana 启用实例grafana 192.168.59.146:3000 启用grafana 192.168.59.146: 3000 success 集群`mytidb-cluster`部署成功,可以通过命令启动:`tiup cluster start mytidb-cluster`

<强>7。启动集群

命令如下:

tiup cluster start mytidb-cluster

startup成功日志如下:

[root@master ~]# tiup cluster start mytidb-cluster 启动组件 `cluster`: /root/.tiup/components/cluster/v1.3.1/tiup-cluster start mytidb-cluster 启动集群 mytidb-cluster... + [ Serial ] - SSHKeySet: privateKey=/root/.tiup/storage/cluster/clusters/mytidb-cluster/ssh/id_rsa, publicKey=/root/.tiup/storage /cluster/clusters/mytidb-cluster/ssh/id_rsa.pub + [并行] - UserSSH: user=tidb, host=192.168.59.146 + [并行] - UserSSH: user=tidb, host=192.168.59.146 + [并行] - UserSSH: user=tidb, host=192.168.59.146 + [并行] allel ] - UserSSH: user=tidb, host=192.168.59.146 + [并行] - UserSSH: user=tidb, host=192.168.59.146 + [并行] - UserSSH: user=tidb, host=192.168.59.146 + [ Serial ] - StartCluster 启动组件 pd 启动实例 pd 192.168.59.146:2379 启动 pd 192.168.59.146:2379 success 启动组件 node_exporter 启动实例 192.168.59.146 启动 192.1 68.59.146成功启动组件blackbox_exporter 启动实例 192.168.59.146 启动 192.168.59.146 成功 启动 tikv 启动实例 tikv 192.168.59.146:20160 启动 tikv 192.168.59.146:20160 成功 启动 tidb 启动实例 tidb 192.168.59.146:4000启动 tidb 192.168.59.146:4000 成功 启动 tiflash 启动实例 tiflash 192.168.59.146:9000 启动 tiflash 192.168.59.146:9000 成功 启动实例组件 prometheus 192.168 .59.146:9090 启动 prometheus 192.168.59.146:9090 成功 启动组件 grafana 启动实例 grafana 192.168。 59.146:3000 启动grafana 192.168.59.146:3000 success + [ Serial ] - UpdateTopology: cluster=mytidb-cluster 成功启动集群`mytidb-cluster`

8.访问数据库

由于 TiDB 支持 mysql 客户端访问,所以我们使用 sqlyog 登录 TiDB,用户名 root,密码为空,地址 192.168.59.149,端口 4000,如下图:

登录成功如下图。左边我们可以看到一些TiDB 自带的表:

9.访问TiDB的Grafana监控

访问地址如下:

http://192.168.59.146:3000/login

初始用户名/密码:admin/admin,登录后修改密码,成功。以下页面如下:

10.dashboard

TiDB v3.x 版本没有仪表板,v4.x 版本没有仪表盘。 0已开始加入,访问地址如下:

http://192.168.59.146:2379/dashboard

11.查看集群列表

命令:tiup cluster list,结果如下:

[root@master /]# tiup cluster list 启动组件`cluster`: /root/.tiup/components/cluster/v1.3.1/tiup-cluster list 名称用户版本路径                                                                                                                                                                                                              mytidb集群。 cluster/mytidb-cluster /root/.tiup/storage/cluster/clusters/mytidb-cluster/ssh/id_rsa

12.查看setGroup拓扑

命令如下:

tiup cluster list

输入命令后,我本地集群的输出为如下:

< pre>[root@master /]# tiup cluster list 启动组件 `cluster`: /root/.tiup/components/cluster/v1.3.1/tiup-cluster list 名称 用户版本 路径 PrivateKey - --- ------ ----                                ---------- mytidb-cluster tidb v3.1.2 /root/.tiup/storage/cluster/clusters/mytidb-cluster /root/.tiup /storage/cluster/clusters/mytidb-cluster/ssh/ id_rsa /var/spool/mail/root 中有新邮件 [root@master /]# tiup cluster display mytidb-cluster 启动组件 `cluster`: /root/。 tiup/components/cluster/v1.3.1/tiup-cluster 显示 mytidb-cluster 集群类型:tidb 集群名称:mytidb-cluster 集群版本:v3.1.2 SSH 类型:内置 ID Ro主机端口 OS/Arch 状态数据目录 部署目录 --                                                                                                                                                                                                                                                                                                                          与p; ------ -------- -------- 192.168.59.146:3000 grafana 192.168.59.146 3000 linux/x86_6 4 向上 - /tidb-deploy/grafana-3000 192.168 .59.146: 2379 pd 192.168.59.146 2379/2380 linux/x86_64 Up|L /tidb-data/pd-2379 /tidb-deploy/pd-2379 192.168.59.146:9090 普罗米修斯 192.168.59.146 9090                                                                                                                                                                                                 我们的linux/x86                                        我们的 linux/x86_64     上         / tidb-data/prometheus-9090    192.168.59.146:4000 tidb 192.168.59.146 4000/10080 linux/x86_64 上 - /tidb-deploy/tidb-4000 192.168.59.146:9000 tiflash 192.168.59.146 9000/8123/3930/20170/20292/8234 linux/x86_64 上 /tidb-data /tiflash-9000 /tidb -deploy/tiflash-9000 192.168.59.146:20160 tikv 192.168.59.146 20160/20230 linux/x86_64 Up /tidb-data/tikv-20160 /tidb-deploy/tikv-20160 节点总数:6

问题遇到

安装TiDB v4.0.9版本,部署可以成功,但是启动时报错。如果 topo.yaml 中配置了 3 个节点,启动时会报错,tikv 只能启动成功 1 个。日志如下:

 [root@master ~]# tiup cluster start mytidb-cluster 启动组件 `cluster`: /root/.tiup/components/cluster/v1.3.1/tiup-cluster start mytidb-cluster 启动集群 mytidb-cluster... + [ Serial ] - SSHKeySet: privateKey=/root/.tiup/storage/cluster /clusters/mytidb-cluster/ssh/id_rsa, publicKey=/root/.tiup/storage/ cluster/clusters/mytidb-cluster/ssh/id_rsa.pub + [并行] - 用户SSH: user=tidb, host=192.168.59.146 + [并行] - UserSSH: user=tidb, host=192.168.59.146 + [并行] - UserSSH: user=tidb, host=192.168.59.146 + [并行] - UserSSH: user=tidb, host=192.168.59.146 + [并行] - UserSSH: user=tidb, host=192.168.59.146 + [并行] - UserSSH: user=tidb, host=192.168.59.146 + [并行] - UserSSH: user= tidb, host=192.168.59.146 + [Parallel] el] -UserSSH:user=tidb, host=192.168.59.146 + [ Serial ] - StartCluster 启动组件 pd 启动实例 pd 192.168.59.146:2379 启动 pd 192.168.59.146:2379 s success 启动组件 node_exporter 启动实例 192.168.59.146 启动 192.168.59.146 success 启动组件 blackbox_exporter 启动实例 192.168.59.146 启动 192.168.59.146 success 启动实例 tikv 启动实例 tikv 192.168.59.146:20162   启动实例 tikv 192.168.59.146:20160 启动实例 tikv 192.168 .59.146:20161 启动 tikv 192.168.59.146:20162 成功 错误:启动 tikv 失败:启动失败t: tikv 192.168.59.146:20161,请查看实例日志(/tidb-deploy/tikv-20161/log)了解更多详情:等待 20161 端口启动超时 2m0s 详细调试日志已写入 /根/.tiup/logs/tiup-cluster-debug-2023-01-05-19-58-46.log。错误:运行 `/root/.tiup/components/cluster/v1.3.1/tiup-cluster` (wd:/root/.tiup/data/SLGrLJI) 失败:退出状态 1

查看日志文件/tidb-deploy/tikv-20161/log/tikv.log,提示以下2个目录找不到文件:

[2023/01/06 05:48:44.231 -05:00] [FATAL] [ lib.rs:482] ["在 `Err` 值上调用 `Result::unwrap()`:Os { code: 2, kind: NotFound, message: \"没有这样的文件或目录\" } "] [backtrace = "堆栈回溯:\n 0: tikv_util::set_panic_hook::{closure}}\n 位于组件/tikv_util/src/lib.rs: 481\n: std::Panicking::rast_ PANIC_WITH_HOOK\n AT SRC/ libstd/panicking.rs:475\n 2: rust_begin_unwind\n 位于 src/libstd/panicking.rs:375\n 3: core::panicking::panic_fmt\nat src/libcore/panicking.rs:84\n 4: core::result::unwrap_failed\n 位于 src/libcore/result.rs:1188\n 5: core::result::Result: ;在 cmd/src/server.rs:310\n cmd::server: ;.rs:166\n 7: std::rt::lang_start::{{closure}}\n 在 /rustc/0de96d37fbcc54978458c18f5067cd9817669bc8/src/ libstd/rt.rs:67\n 8: main\n 9: __libc_start_main\ n 10: \n"] [location=src/libcore/result.rs:1188] [thread_name=main]

如果配置了节点,启动还是失败,我们会截取启动日志的后半部分:

Starting component pd Getting instance pd 192.168.59.146:2379 Getting pd 192.168.59.146 :2379成功启动组件node_exporter启动实例192.168.59.146启动192.168.59.146成功启动组件blackbox_exporter启动实例192.168.59.146启动192.168.59.146成功启动组件tikv启动实例tikv 192.168.59.146:2016 0 启动 tikv 192.168.59.146:20160 成功 启动 tidb启动实例 tidb 192.168.59.146:4000 启动ng tidb 192.168.59.146:4000 成功 启动组件 tiflash 启动实例 tiflash 192.168.59.146:9000 错误:启动 tiflash 失败: 启动失败:tiflash 192.168.59.146:9000,请检查实例日志(/tidb-deploy/tiflash- 9000/log)了解更多详细信息。:在 2m0s 详细调试日志写入 /root/.tiup/logs/tiup -cluster-debug-2023-01-06-20-02 后,等待端口 9000 启动超时-13.log。

/tidb-deploy/tiflash-9000/log 中的文件如下:

[2023 /01/06 20:06:26.207 -05: 00] [INFO] [mod.rs:335] [“启动工作线程”] [worker=region-collector-worker] [2023/01/06 20:06: 27.130 -05:00] [致命] [lib。 rs:482] ["在 `Err` 值上调用 `Result::unwrap()`:Os { code: 2, kind: NotFound, message: \"没有这样的文件或目录\" }"] [backtrace="堆栈回溯:\n 0: tikv_util::set_panic_hook::{{closure}}\n 1: std::panicking::rust_panic_with_hook\n 位于 src/libstd/panicking.rs:475\n 2: rust_begin_unwind\n 位于 src /libstd/panicking.rs:375\n 3: core : :panicking::panic_fmt\n             at src/libcore/panicking.rs:84\n   4: core::result::unwrap_failed\n             at src/libcore/result.rs:1188\n   5: cmd ::server:: run_tikv\n 6: run_proxy\n 7: operator()\n 位于 /home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/tics/dbms/src/Server/Server. cpp:415\n" ] [location=src/libcore/result.rs:1188] [thread_name=]

我尝试了 v4.0.1 版本,也有同样的问题。报错找不到文件。

感谢您的阅读,以上是《如何从0到1部署TiDB本地集群》的内容,学习后这篇文章相信大家都知道如何从 0 到 1 了,对于部署 TiDB 本地集群的问题有了更深入的了解,具体的用法还需要在实践中验证,这里小编会推送更多文章为您讲解相关知识点,欢迎关注!

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何从 0 到 1 部署 TiDB 本地集群

用户评论