Ubuntu 20.04 安装部署 TiDB DM v7.3.0 集群【全网独家】

2023-10-02 18:50

本文主要是介绍Ubuntu 20.04 安装部署 TiDB DM v7.3.0 集群【全网独家】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

      • 测试环境说明
      • TiDB 单机环境部署
      • DM 集群部署
        • 1. 免密设置
        • 2. 组件下载
        • 3. DM 配置文件模板获取
        • 4.DM 配置文件设置
        • 5.部署与启动 DM 集群

前言: 放眼全网,我找不出一篇在 Ubuntu 里面搭建 DM 集群的文章,虽然 TiDB 官方推荐使用 CentOS 系统,但因为工作需要,不得不在 Ubantu 里面搭建 DM 集群用作数据迁移,期间碰到了一些部署问题,折磨了我很久,这次通过这篇文章造福大众吧。

测试环境说明

当前我在 Ubantu 中有如下三台主机:

IP 映射主机名功能CPU内存备注
mastermaster4核8GDM-master 主节点
slave1worker4核8GDM-worker 工作节点
slave2worker4核8GDM-worker 工作节点

使用的 Ubantu 版本为 Ubuntu 20.04.3 LTS ,后续通过这三台主机部署 TiDB DM 集群环境。

TiDB 单机环境部署

在三台机器中都部署好 TiDB 单机环境,分别在三台机器中执行下列命令:

1. 下载并安装 TiUP 工具

curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh# 刷新全局变量
source /root/.bashrc

2. 在线快速部署单机集群

默认会选择当前的最新版进行部署。

tiup playground

部署完成后,会出现如下提示:

在这里插入图片描述

该窗口保持前台运行,后续命令在新增窗口中完成。

3. 使用 TiUP client 连接 TiDB

tiup client

进去后,执行 show databases; 命令,如果可以查询出库名,表示安装成功:

在这里插入图片描述

DM 集群部署

前提条件

  • 每台机器已经安装并至少部署了单机版的 TiDB 集群。
  • 每台机器均已防火墙关闭或者开放后续要用到的端口。
1. 免密设置

设置三台机器之间的免密登录。

# 在三台主机中都执行,生成公钥和私钥
ssh-keygen -t rsa# 在 master 主机执行,复制公钥,期间需要输入 slave1 与 slave2 的密码
cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
ssh slave1 cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
ssh slave2 cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys# 在 slave1 与 slave2 主机执行,复制公钥
ssh master cat ~/.ssh/authorized_keys>> ~/.ssh/authorized_keys
2. 组件下载

在三台主机中都执行,安装下列组件。

# 用于提升权限以执行特权操作的命令
apt-get install sudo -y# 安装服务管理器
apt-get install systemd -y
apt-get install systemctl -y# 用于查看套接字统计和网络信息
apt-get install iproute2 -y# 安装 TiDB DM 组件及其控制工具 DMctl
tiup install dm dmctl

这个地方是最折磨我的,因为日志里面并不会直接告诉你需要哪个命令,需要自己去找,官方也并没有提供说明需要下载这些 Ubantu 组件,可能因为我用的是 Ubantu,而官方更兼容的是 CentOS 系统。

装好上列组件后,你会规避以下问题:

2023-10-02T10:29:10.118+0800    DEBUG   retry error     {"error": "operation timed out after 2m0s"}2023-10-02T10:29:10.117+0800    ERROR   SSHCommand      {"host": "master", "port": "22", "cmd": "export LANG=C; PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin ss -ltn", "error": "Process exited with status 127", "stdout": "", "stderr": "bash: ss: command not found\n"}System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

如果还是出现该问题,调大内存即可,我刚开是 6G,后面调到 8G 就没有这个错误了。

System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
3. DM 配置文件模板获取

我们可以通过在线或者离线的方式设置 DM 配置文件模板。

在线模板

官方提供了在线的 DM 配置文件模板获取,执行以下命令即可:

tiup dm template > topology.yaml

将模板下载到你指定的 yaml 文件中。

离线模板

---
# Global variables are applied to all deployments and as the default value of
# them if the specific deployment value missing.
global:user: "tidb"ssh_port: 22deploy_dir: "/dm-deploy"data_dir: "/dm-data"server_configs:master:log-level: info# rpc-timeout: "30s"# rpc-rate-limit: 10.0# rpc-rate-burst: 40worker:log-level: infomaster_servers:- host: 10.0.1.11name: master1# ssh_port: 22# port: 8261# peer_port: 8291# deploy_dir: "/dm-deploy/dm-master-8261"# data_dir: "/dm-data/dm-master-8261"# log_dir: "/dm-deploy/dm-master-8261/log"# numa_node: "0,1"# # The following configs are used to overwrite the `server_configs.master` values.config:log-level: info# rpc-timeout: "30s"# rpc-rate-limit: 10.0# rpc-rate-burst: 40- host: 10.0.1.18name: master2- host: 10.0.1.19name: master3worker_servers:- host: 10.0.1.12# ssh_port: 22# port: 8262# deploy_dir: "/dm-deploy/dm-worker-8262"# log_dir: "/dm-deploy/dm-worker-8262/log"# numa_node: "0,1"# # Config is used to overwrite the `server_configs.dm-worker` valuesconfig:log-level: info# keepalive-ttl: 60# relay-keepalive-ttl: 1800 # since v2.0.2# relay-dir: "" # since v5.4.0- host: 10.0.1.19monitoring_servers:- host: 10.0.1.13# ssh_port: 22# port: 9090# deploy_dir: "/tidb-deploy/prometheus-8249"# data_dir: "/tidb-data/prometheus-8249"# log_dir: "/tidb-deploy/prometheus-8249/log"# prometheus rule dir on TiUP machine# rule_dir: /home/tidb/prometheus_rulegrafana_servers:- host: 10.0.1.14# port: 3000# deploy_dir: /tidb-deploy/grafana-3000# grafana dashboard dir on TiUP machine# dashboard_dir: /home/tidb/dashboardsalertmanager_servers:- host: 10.0.1.15# ssh_port: 22# web_port: 9093# cluster_port: 9094# deploy_dir: "/tidb-deploy/alertmanager-9093"# data_dir: "/tidb-data/alertmanager-9093"# log_dir: "/tidb-deploy/alertmanager-9093/log"# if monitored is set, node_exporter and blackbox_exporter will be
# deployed with the port specified, otherwise they are not deployed
# on the server to avoid conflict with tidb clusters
#monitored:
#  node_exporter_port: 9100
#  blackbox_exporter_port: 9115

来自 TiDB 官方的建议:

不建议在一台主机上运行太多 DM-worker。每个 DM-worker 至少应有 2CPU4 GiB 内存。

需要确保以下组件间端口可正常连通:

  • DM-master 节点间的 peer_port(默认为 8291)可互相连通。

  • DM-master 节点可连通所有 DM-worker 节点的 port(默认为 8262)。

  • DM-worker 节点可连通所有 DM-master 节点的 port(默认为 8261)。

  • TiUP 节点可连通所有 DM-master 节点的 port(默认为 8261)。

  • TiUP 节点可连通所有 DM-worker 节点的 port(默认为 8262)。

4.DM 配置文件设置

我这里设置了一台 DM-master 节点以及两台 DM-worker 节点,你可以根据需要调整或者新增其它节点,例如:监控节点、警报节点等。

/opt 目录下创建 topology.yaml 文件,然后添加了如下内容:

global:user: "root"ssh_port: 22deploy_dir: "/dm-deploy"data_dir: "/dm-data"server_configs:master:log-level: infoworker:log-level: infomaster_servers:- host: masterssh_port: 22port: 8261worker_servers:- host: slave1ssh_port: 22port: 8262- host: slave2ssh_port: 22port: 8262
5.部署与启动 DM 集群

我这里部署目前的最新版 v7.3.0,指定编写的配置文件,进行一键化自动部署。

tiup dm deploy dm-test 7.3.0 /opt/topology.yaml --user root

命令解析

  • tiup dm deploy 为部署 DM 集群的命令,固定前缀。

  • dm-test 为 DM 集群的名称。

  • 7.3.0 为指定的版本。

  • /opt/topology.yaml 指定配置文件。

  • --user root 指定操作用户为 root 账号。

这里不需要指定密码是因为我们之前做了三台机器的免密登录,如果你的免密存在问题,请按我的免密进行设置。

部署过程中需要进行确认:

在这里插入图片描述

部署完成后,会出现如下成功提示:

在这里插入图片描述

启动 DM 集群

这里要将 dm-test 修改为你设置的 DM 集群名称。

tiup dm start dm-test

正常启动后,会出现如下提示成功的信息:

在这里插入图片描述

我们可以通过如下命令来检测 DM 集群各节点是否运行正常:

tiup dm display dm-test

在这里插入图片描述

可以看到主节点和工作节点都是正常状态,DM 集群启动完成。

这篇关于Ubuntu 20.04 安装部署 TiDB DM v7.3.0 集群【全网独家】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/51

相关文章

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

Pytorch介绍与安装过程

《Pytorch介绍与安装过程》PyTorch因其直观的设计、卓越的灵活性以及强大的动态计算图功能,迅速在学术界和工业界获得了广泛认可,成为当前深度学习研究和开发的主流工具之一,本文给大家介绍Pyto... 目录1、Pytorch介绍1.1、核心理念1.2、核心组件与功能1.3、适用场景与优势总结1.4、优

conda安装GPU版pytorch默认却是cpu版本

《conda安装GPU版pytorch默认却是cpu版本》本文主要介绍了遇到Conda安装PyTorchGPU版本却默认安装CPU的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、问题描述二、网上解决方案罗列【此节为反面方案罗列!!!】三、发现的根本原因[独家]3.1 p