TiDB亿级数据亚秒响应查询集群部署

news2024/11/25 8:15:56

目录

  • 1 集群部署
    • 1.1 环境要求
      • 1.1.1 操作系统建议配置
      • 1.1.2 服务器建议配置
    • 1.2 环境准备
    • 1.3 安装TiUP
      • 1.3.1 什么是TiUP
      • 1.3.2 安装TiUP组件
      • 1.3.3 配置TiUP环境
      • 1.3.4 检查TiUP 工具是否安装
      • 1.3.5 安装 cluster 组件
      • 1.3.6 升级cluster组件
    • 1.4 编辑部署文件
      • 1.4.1 常见的部署场景
      • 1.4.2 单机极简部署
    • 1.5 执行集群部署命令
      • 1.5.1 命令格式
      • 1.5.2 检查TiDB最新版本
      • 1.5.3 执行部署命令
      • 1.5.4 启动集群
      • 1.5.5 查看节点状态
  • 2. 测试TiDB集群
    • 2.1 Mysql连接集群
      • 2.1.1 安装MySql客户端
      • 2.1.2 第三方客户端访问Mysql
    • 2.2 访问Grafana监控
    • 2.3 访问Dashboard
    • 2.4 查看集群列表
    • 2.5 查看集群拓扑


1 集群部署

在这里插入图片描述

1.1 环境要求

1.1.1 操作系统建议配置

	TiDB 作为一款开源分布式 NewSQL 数据库,可以很好的部署和运行在 Intel 架构服务器环境、ARM 架构的服务器环境及主流虚拟化环境,并支持绝大多数的主流硬件网络。作为一款高性能数据库系统,TiDB 支持主流的 Linux 操作系统环境。
Linux 操作系统平台版本
Red Hat Enterprise Linux7.3 及以上
CentOS7.3 及以上
Oracle Enterprise Linux7.3 及以上
Ubuntu LTS16.04 及以上

1.1.2 服务器建议配置

	TiDB 支持部署和运行在 Intel x86-64 架构的 64 位通用硬件服务器平台或者 ARM 架构的硬件服务器平台。对于开发,测试,及生产环境的服务器硬件配置(不包含操作系统 OS 本身的占用)有以下要求和建议:

开发及测试环境

组件CPU内存本地存储网络实例数量(最低要求)
TiDB8 核+16 GB+无特殊要求千兆网卡1(可与 PD 同机器)
PD4 核+8 GB+SAS, 200 GB+千兆网卡1(可与 TiDB 同机器)
TiKV8 核+32 GB+SSD, 200 GB+千兆网卡3
TiFlash32 核+64 GB+SSD, 200 GB+千兆网卡1
TiCDC8 核+16 GB+SAS, 200 GB+千兆网卡1

生产环境

组件CPU内存硬盘类型网络实例数量(最低要求)
TiDB16 核+32 GB+SAS万兆网卡(2 块最佳)2
PD4核+8 GB+SSD万兆网卡(2 块最佳)3
TiKV16 核+32 GB+SSD万兆网卡(2 块最佳)3
TiFlash48 核+128 GB+1 or more SSDs万兆网卡(2 块最佳)2
TiCDC16 核+64 GB+SSD万兆网卡(2 块最佳)2
监控8 核+16 GB+SAS千兆网卡1

1.2 环境准备

准备一台部署主机,确保其软件满足需求:

  • 推荐安装 CentOS 7.3 及以上版本
  • Linux 操作系统开放外网访问,用于下载 TiDB 及相关软件安装包

最小规模的 TiDB 集群拓扑

实例个数IP配置
TiKV3192.168.10.30避免端口和目录冲突
TiDB1192.168.10.30默认端口 全局目录配置
PD1192.168.10.30默认端口 全局目录配置
TiFlash1192.168.10.30默认端口 全局目录配置
Monitoring & Grafana1192.168.10.30默认端口 全局目录配置

1.3 安装TiUP

1.3.1 什么是TiUP

	从 TiDB 4.0 版本开始,TiUP 作为新的工具,承担着包管理器的角色,管理着 TiDB 生态下众多的组件,如 TiDB、PD、TiKV 等。用户想要运行 TiDB 生态中任何组件时,只需要执行 TiUP 一行命令即可,相比以前,极大地降低了管理难度。

1.3.2 安装TiUP组件

使用普通用户登录中控机,以 tidb 用户为例,后续安装 TiUP 及集群管理操作均通过该用户完成

TiUP 安装过程十分简洁,无论是 Darwin 还是 Linux 操作系统,执行一行命令即可安装成功:

[root@linux30 ~]# curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
	该命令将 TiUP 安装在 `$HOME/.tiup` 文件夹下,之后安装的组件以及组件运行产生的数据也会放在该文件夹下。同时,它还会自动将 `$HOME/.tiup/bin` 加入到 Shell Profile 文件的 PATH 环境变量中,这样你就可以直接使用 TiUP 了。

在这里插入图片描述

1.3.3 配置TiUP环境

重新声明全局环境变量

[root@linux30 tidb]# source /root/.bash_profile

1.3.4 检查TiUP 工具是否安装

[root@linux30 tidb]# which tiup
/root/.tiup/bin/tiup

1.3.5 安装 cluster 组件

[root@linux30 tidb]# tiup cluster

在这里插入图片描述

1.3.6 升级cluster组件

如果机器已经安装 TiUP cluster,需要更新软件版本

[root@linux30 tidb]# tiup update --self && tiup update cluster

预期输出 “Update successfully!” 字样。

在这里插入图片描述

1.4 编辑部署文件

请根据不同的集群拓扑,编辑 TiUP 所需的集群初始化配置文件。

1.4.1 常见的部署场景

最小拓扑架构

	最基本的集群拓扑,包括 tidb-server、tikv-server、pd-server,适合 OLTP 业务。

增加 TiFlash 拓扑架构

	包含最小拓扑的基础上,同时部署 TiFlash。TiFlash 是列式的存储引擎,已经逐步成为集群拓扑的标配。适合 Real-Time HTAP 业务。

增加 TiCDC 拓扑架构

	包含最小拓扑的基础上,同时部署 TiCDC。TiCDC 是 4.0 版本开始支持的 TiDB 增量数据同步工具,支持多种下游 (TiDB/MySQL/MQ)。相比于 TiDB Binlog,TiCDC 有延迟更低、天然高可用等优点。在部署完成后,需要启动 TiCDC,通过 `cdc cli` 创建同步任务。

增加 TiDB Binlog 拓扑架构

	包含最小拓扑的基础上,同时部署 TiDB Binlog。TiDB Binlog 是目前广泛使用的增量同步组件,可提供准实时备份和同步功能。

增加 TiSpark 拓扑架构

	包含最小拓扑的基础上,同时部署 TiSpark 组件。TiSpark 是 PingCAP 为解决用户复杂 OLAP 需求而推出的产品。TiUP cluster 组件对 TiSpark 的支持目前为实验性特性。

混合部署拓扑架构

	适用于单台机器,混合部署多个实例的情况,也包括单机多实例,需要额外增加目录、端口、资源配比、label 等配置。

1.4.2 单机极简部署

部署主机软件和环境要求:

  • 部署需要使用部署主机的 root 用户及密码
  • 部署主机关闭防火墙或者开放 TiDB 集群的节点间所需端口

单机极简拓扑

实例IP开放端口
grafana192.168.10.303000
pd192.168.10.302379/2380
prometheus192.168.10.309090
tidb192.168.10.304000/10080
tiflash192.168.10.309000/8123/3930/20170/20292/8234
tikv192.168.10.3020160/20180
tikv192.168.10.3020161/20181
tikv192.168.10.3020162/20182

编辑配置文件

按下面的配置模板,编辑配置文件,命名为 topo.yaml

  • user: "tidb":表示通过 tidb 系统用户(部署会自动创建)来做集群的内部管理,默认使用 22 端口通过 ssh 登录目标机器
  • replication.enable-placement-rules:设置这个 PD 参数来确保 TiFlash 正常运行
  • host:设置为本部署主机的 IP
# # Global variables are applied to all deployments and used as the default value of
# # the deployments if a specific deployment value is missing.
global:
 user: "tidb"
 ssh_port: 22
 deploy_dir: "/opt/tidb/tidb-deploy"
 data_dir: "/opt/tidb/tidb-data"

# # Monitored variables are applied to all the machines.
monitored:
 node_exporter_port: 9100
 blackbox_exporter_port: 9115

server_configs:
 tidb:
   log.slow-threshold: 300
 tikv:
   readpool.storage.use-unified-pool: false
   readpool.coprocessor.use-unified-pool: true
 pd:
   replication.enable-placement-rules: true
   replication.location-labels: ["host"]
 tiflash:
   logger.level: "info"

pd_servers:
 - host: 192.168.10.30

tidb_servers:
 - host: 192.168.10.30

tikv_servers:
 - host: 192.168.10.30
   port: 20160
   status_port: 20180
   config:
     server.labels: { host: "logic-host-1" }

 - host: 192.168.10.30
   port: 20161
   status_port: 20181
   config:
     server.labels: { host: "logic-host-2" }

 - host: 192.168.10.30
   port: 20162
   status_port: 20182
   config:
     server.labels: { host: "logic-host-3" }

tiflash_servers:
 - host: 192.168.10.30

monitoring_servers:
 - host: 192.168.10.30

grafana_servers:
 - host: 192.168.10.30

1.5 执行集群部署命令

1.5.1 命令格式

tiup cluster deploy <cluster-name> <tidb-version> ./topo.yaml --user root -p

参数解释

  • 参数 <cluster-name> 表示设置集群名称
  • 参数 <tidb-version> 表示设置集群版本,可以通过 tiup list tidb 命令来查看当前支持部署的 TiDB 版本
  • 参数:--use.r root通过 root 用户登录到目标主机完成集群部署,该用户需要有 ssh 到目标机器的权限,并且在目标机器有 sudo 权限。也可以用其他有 ssh 和 sudo 权限的用户完成部署。

1.5.2 检查TiDB最新版本

可以通过执行 tiup list tidb 来查看 TiUP 支持的版本

[root@linux30 tidb]# tiup list tidb

经过执行发现 可用的TiDB版本有 v5.3.0

1.5.3 执行部署命令

[root@linux30 tidb]# tiup cluster deploy tidb-cluster 5.3.0 ./topo.yaml --user root -p

下面输入y继续后输入密码进行安装界面

在这里插入图片描述

进入安装界面,等待安装即可

在这里插入图片描述

如果出现deployed successfully表示部署成功,集群名称是tidb-cluster

1.5.4 启动集群

[root@linux30 tidb]# tiup cluster start tidb-cluster

在这里插入图片描述

1.5.5 查看节点状态

[root@linux30 tidb]# tiup cluster display tidb-cluster

所有节点都是Up状态说明都已经启动就绪了

在这里插入图片描述

2. 测试TiDB集群

2.1 Mysql连接集群

TiDB的连接端口默认是4000, 密码是空,可用使用Mysql客户端以及第三方工具进行连接

2.1.1 安装MySql客户端

yum -y install mysql

MySql客户端连接

访问 TiDB 数据库,密码为空

[root@linux30 tidb]# mysql -uroot -p -P 4000 -h 192.168.10.30

在这里插入图片描述

2.1.2 第三方客户端访问Mysql

使用SQLyog访问TiDB

2.1.2.1 创建TiDB连接

在这里插入图片描述

连接后就可以操作数据库了

在这里插入图片描述

2.2 访问Grafana监控

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

在这里插入图片描述

2.3 访问Dashboard

通过 http://192.168.10.30:2379/dashboard 访问集群 TiDB Dashboard监控页面,默认用户名为 root,密码为空。

在这里插入图片描述

2.4 查看集群列表


[root@linux30 tidb]# tiup cluster list

在这里插入图片描述

2.5 查看集群拓扑


[root@linux30 tidb]# tiup cluster display tidb-cluster

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/630275.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go语言并发微服务分布式高可用

Go语言并发微服务分布式高可用 Go语言基础 环境安装 命令行输入go&#xff0c;当前操作系统Os环境中依赖于PATH指定的日录们去找命令(可执行文件)windows会优先搜索当前日录&#xff0c;当前日录没有才依赖PATH中指定的日录 环境变量: 操作系统运行环境中提前定义好的变量P…

FreeRTOS简单任务创建和任务删除(基于stm32F407)

1. 实验目的 使用动态方法 xTaskCreate()创建任务&#xff0c;使用vTaskDelete()函数删除任务&#xff1b;创建开始任务start_task&#xff0c;在开始任务中创建其他三个任务&#xff0c;创建task1任务实现LED0每500ms闪烁一次&#xff0c;创建task2任务实现LED1每500ms闪烁一…

Linux C简易聊天室

对于初学者而已&#xff0c;我们学习的网络编程&#xff08;如TCP,UDP编程&#xff09;&#xff0c;我们通常都是在局域网内进行通信测试&#xff0c;有时候我们或者会想&#xff0c;我们现在写的内网网络数据和外网的网络数据有什么不同&#xff0c;我们内网的数据是如何走出外…

notepadd++快捷键记录

记录下 notepadd 常用快捷键 1.搜索 普通搜索&#xff1a;Ctrl F 正则表达式搜索&#xff1a; 查找模式用 正则表达式 。如 A|B|C &#xff0c;搜索多个关键字&#xff0c; 更多正则表达式探索中。 还可以选中 选取范围内 &#xff0c;就会只在鼠标选中区域内查找。 2.区…

Visual Studio Code 1.79 发布

发布模式 - 将工作区中的特定文件和文件夹标记为只读。 在某些开发场景中&#xff0c;将工作区的某些文件夹或文件显式标记为只读会很有帮助。例如&#xff0c;如果文件夹或文件内容由不同的进程管理(例如 node_modules 由 Node.js 包管理器管理的文件夹)&#xff0c;则将它们…

E往无前 | get正确使用姿势!腾讯云大数据ES日志场景优化案例回顾

导语&#xff1a; 随着ELK方案在开源日志分析领域越来越流行&#xff0c;各种业务场景也给ELK方案带来了越来越多的挑战。本文将回顾一次真实客户案例&#xff0c;从使用姿势上&#xff0c;提供一些大集群、多日志主题场景下的集群优化思路。 一、ELK不香了&#xff1f; 我们…

DevOps系列文章之 Docker-compose

一&#xff0c;Docker-compose全集 1&#xff0c;Docker-compose简介 Docker-Compose项目是Docker官方的开源项目&#xff0c;负责实现对Docker容器集群的快速编排。 Docker-Compose将所管理的容器分为三层&#xff0c;分别是工程&#xff08;project&#xff09;&#xff0c…

ChatGLM简介和SSE聊天接口测试效果

开发公司 智谱AI是由清华大学计算机系技术成果转化而来的公司&#xff0c;致力于打造新一代认知智能通用模型。公司合作研发了双语千亿级超大规模预训练模型GLM-130B&#xff0c;并构建了高精度通用知识图谱&#xff0c;形成数据与知识双轮驱动的认知引擎&#xff0c;基于此模型…

java异常 | 处理规范、全局异常、Error处理

文章目录 &#x1f683;异常类型&#x1f3a0;显示声明异常&#xff1a;①&#xff1a;try-catch②方法签名 &#x1f683;异常处理规范⚓️异常包装⚓️异常传递⚓️异常日志记录⚓️异常处理的最佳实践 &#x1f683;全局异常处理⛵️优点&#xff1a;⛵️代码示例&#xff1…

骨传导蓝牙耳机哪个牌子好,列举几款知名的骨传导耳机

​骨传导耳机&#xff0c;顾名思义就是通过骨头传播声音的耳机&#xff0c;由于它在声音传播方式上与传统耳机不同&#xff0c;不需要借助外耳、耳道&#xff0c;也能让耳朵更好地感受到外界的声音&#xff0c;在一些特殊场合下可以让使用者听到环境音。骨传导耳机虽然很小巧轻…

AI实战营:目标检测与MMDetection

目标检测的基本范式 什么是目标检测 目标检测 vs 图像分类 目标检测 in 人脸识别 目标检测 in 智慧城市 目标检测 in 自动驾驶 目标检测 in 下游视觉任务 目标检测技术的演进 基础知识 框、边界框&#xff08;Bounding Box&#xff09; 交并比 Intersection Over Union 目标检…

奇舞周刊第495期:软件高可用实践那些事

记得点击文章末尾的“ 阅读原文 ”查看哟~ 下面先一起看下本期周刊 摘要 吧~ 奇舞推荐 ■ ■ ■ 软件高可用实践那些事儿 本文从高可用落地实践的角度&#xff0c;通过协作效率&#xff0c;技术落地和运营规范等几个层面&#xff0c;阐述了高可用具体实施步骤和落地细节。 浏览…

如何使用微软官方工具制作win11启动盘

windows11 启动盘制作和使用 一、启动盘制作准备二、制作步骤三、对其他电脑安装windows11系统 一、启动盘制作准备 1.至少存储空间为8GB的空白U盘 2.一台电脑 二、制作步骤 1.在官方网站中选择下载工具&#xff0c;选择创建windows11安装&#xff0c;下载完毕之后&#xff…

混淆矩阵、准确率、召回率、漏报率、误报率、F1分数

1、混淆矩阵 在二分类问题中&#xff0c;混淆矩阵被用来度量模型的准确率。因为在二分类问题中单一样本的预测结果只有Yes or No&#xff0c;即&#xff1a;真或者假两种结果&#xff0c;所以全体样本的经二分类模型处理后&#xff0c;处理结果不外乎四种情况&#xff0c;每种情…

ASP.NET Core MVC 从入门到精通之Html辅助标签(一)

随着技术的发展&#xff0c;ASP.NET Core MVC也推出了好长时间&#xff0c;经过不断的版本更新迭代&#xff0c;已经越来越完善&#xff0c;本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容&#xff0c;适用于初学者&#xff0c;在校毕业生&#xff0c…

微信小程序快速入门【一】

微信小程序快速入门【一】 文章目录 微信小程序快速入门【一】&#x1f468;‍&#x1f3eb;内容1&#xff1a;背景&#x1f468;‍⚖️内容2&#xff1a;准备工作&#x1f468;‍&#x1f4bb;内容3&#xff1a;新建一个小程序&#x1f349;文末推荐 &#x1f468;‍&#x1f…

有关 python 切片的趣事

哈喽大家好&#xff0c;我是咸鱼 今天来讲一个我在实现 python 列表切片时遇到的趣事 在正式开始之前&#xff0c;我们先来了解一下切片&#xff08;slice&#xff09; 切片操作是访问序列&#xff08;列表、字符串…&#xff09;中元素的另一种方法&#xff0c;它可以访问一…

莱特兄弟的家庭教育

莱特兄弟的三个设计经验 你可以从他们如何使得一辆自行车飞行中学到很多东西 克莱夫汤普森 大家都知道莱特兄弟是第一个实现动力飞行的人——他们的飞机于1903年12月17日在北卡罗来纳州的基蒂霍克起飞。 但是在实现这一突破之前的过程? 这真是令人感兴趣&#xff0c;并且充满了…

【PWN · ret2text | ‘/bin/sh‘写在bss段】[HNCTF 2022 Week1]ezr0p32

目录 前言 一、题目 二、解题过程 payload的构造 三、exp 总结 前言 一直在做libc的中规中矩的题目&#xff0c;遇到一题有点老的类型的题目有些陌生。但其实其中原理比较简单&#xff0c;但是涉及到/bin/sh获取的常规操作&#xff0c;而自己也没整理过&#xff0c;于…

Git->分支

⭐作者介绍&#xff1a;大二本科网络工程专业在读&#xff0c;持续学习Java&#xff0c;努力输出优质文章 ⭐作者主页&#xff1a;逐梦苍穹 ⭐所属专栏&#xff1a;Git ⭐如果觉得文章写的不错&#xff0c;欢迎点个关注一键三连&#x1f609;有写的不好的地方也欢迎指正&#x…