当前位置: 首页 > news >正文

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

目录

  • 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: 22deploy_dir: "/opt/tidb/tidb-deploy"data_dir: "/opt/tidb/tidb-data"# # Monitored variables are applied to all the machines.
monitored:node_exporter_port: 9100blackbox_exporter_port: 9115server_configs:tidb:log.slow-threshold: 300tikv:readpool.storage.use-unified-pool: falsereadpool.coprocessor.use-unified-pool: truepd:replication.enable-placement-rules: truereplication.location-labels: ["host"]tiflash:logger.level: "info"pd_servers:- host: 192.168.10.30tidb_servers:- host: 192.168.10.30tikv_servers:- host: 192.168.10.30port: 20160status_port: 20180config:server.labels: { host: "logic-host-1" }- host: 192.168.10.30port: 20161status_port: 20181config:server.labels: { host: "logic-host-2" }- host: 192.168.10.30port: 20162status_port: 20182config:server.labels: { host: "logic-host-3" }tiflash_servers:- host: 192.168.10.30monitoring_servers:- host: 192.168.10.30grafana_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

在这里插入图片描述

相关文章:

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

目录 1 集群部署1.1 环境要求1.1.1 操作系统建议配置1.1.2 服务器建议配置 1.2 环境准备1.3 安装TiUP1.3.1 什么是TiUP1.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.…...

并发——同步访问共享的可变数据

关键字 synchronized 可以保证在同一时刻&#xff0c;只有一个线程可以执行某一个方法&#xff0c;或者某一段代码块。许多程序员把同步的概念仅仅理解为一种互斥的方式。即&#xff0c;当一个对象被一个线程修改的时候&#xff0c;可以阻止另一个线程观察到内部不一致的状态。…...

Docker网络模型(九)禁用容器网络

禁用容器网络 如果你想完全禁用容器上的协议栈&#xff0c;你可以在启动容器时使用 --network none 标志。在容器内&#xff0c;只有回环设备被创建。下面的例子说明了这一点。 创建容器 $ docker run --rm -dit \--network none \--name no-net-alpine \alpine:latest \ash通…...

JavaScript 教程---互联网文档计划

学习目标&#xff1a; 每天记录一章笔记 学习内容&#xff1a; JavaScript 教程---互联网文档计划 笔记时间&#xff1a; 2023-6-5 --- 2023-6-11 学习产出&#xff1a; 1.入门篇 1、JavaScript 的核心语法包含部分 基本语法标准库宿主API 基本语法&#xff1a;比如操作符…...

做好功能测试需要的8项基本技能【点工进来】

功能测试是测试工程师的基础功&#xff0c;很多人功能测试还做不好&#xff0c;就想去做性能测试、自动化测试。很多人对功能测试的理解就是点点点&#xff0c;如何自己不用心去悟&#xff0c;去研究&#xff0c;那么你的职业生涯也就停留在点点点上了。在这里&#xff0c;我把…...

在弹出框内三个元素做水平显示

最终效果图要求是这样&#xff1a; js代码&#xff1a; // 显示弹出窗口 function showPopup(node) {var popup document.createElement(div);popup.className popup;var inputContainer1 document.createElement(div);/* inputContainer1.className input-container1; */…...

纠删码技术在vivo存储系统的演进【上篇】

作者&#xff1a;vivo 互联网服务器团队- Gong Bing 本文将学术界和工业界的纠删码技术的核心研究成果进行了相应的梳理&#xff0c;然后针对公司线上存储系统的纠删码进行分析&#xff0c;结合互联网企业通用的IDC资源、服务器资源、网络资源、业务特性进行分析对原有纠删码技…...

如何实现APP自动化测试?

APP测试&#xff0c;尤其是APP的自动化测试&#xff0c;在软件测试工程师的面试中越来越会被问到了。为了更好的回答这个问题&#xff0c;我今天就给大家分享一下&#xff0c;如何进行APP的自动化测试。 一、为了实现JavaAppiumJunit技术用于APP自动化测试&#xff0c;所以需要…...

​​INNODB和MyISAM区别

1 存储引擎是MyISAM 如下&#xff1a; CREATE table test_myisam (cli int ) ENGINEMyISAM 存储目录里会有三个文件 test_myisam.frm为“表定义”&#xff0c;是描述数据表结构的文件 test_myisam.MYI文件是表的索引 test_myisam.MYD文件是表的数据 2 存储引擎是INNODB…...

普中自动下载软件1.86下载程序失败案例

今天在用开发板做一个功能&#xff0c;下载的时候报错了&#xff0c;说芯片超时 确定驱动安装好了的 波特率也试了一圈 线也换过了 最后发现是芯片类型选错了&#xff0c;这个开发板是用的stc89c52,所以我选了图里这个&#xff0c;但是翻了开发板配套的资料&#xff0c;发现…...

JavaScript HTML DOM

JavaScript HTML DOM&#xff08;文档对象模型&#xff09;是一种用于访问和操作HTML文档元素的编程接口。它将HTML文档表示为一个树形结构&#xff0c;使开发人员可以使用JavaScript来操作和修改HTML元素、属性、样式和事件。 通过使用HTML DOM&#xff0c;你可以使用JavaScr…...

solr快速上手:配置IK中文分词器(七)

0. 引言 solr作为搜索引擎&#xff0c;常用在我们对于搜索速度有较高要求且大数据量的业务场景&#xff0c;我们之前已经配置过英文分词器&#xff0c;但是针对中文分词不够灵活和实用&#xff0c;要实现真正意义上的中文分词&#xff0c;还需要单独安装中文分词器 solr快速上…...

【软件测试】接口测试工具APIpost

说实话&#xff0c;了解APIpost是因为&#xff0c;我的所有接口相关的文章下&#xff0c;都有该APIpost水军的评论&#xff0c;无非就是APIpost是中文版的postman&#xff0c;有多么多么好用&#xff0c;虽然咱也还不是什么啥网红&#xff0c;但是不知会一声就乱在评论区打广告…...

第六章 假言:那么、就、则;才。

第六章 假言&#xff1a;那么、就、则&#xff1b;才。 第一节 假言-公式化转换-等价矛盾 真题&#xff08;2012-38&#xff09;-假言-A→B的公式化转换-A→B的等价命题&#xff1a;①逆否命题&#xff1a;非B→非A。 38.经理说&#xff1a;“有了自信不一定赢。”董事长回…...

[干货] 如何解决慢SQL?详细分析和优化实践!

慢SQL优化实践 本篇博客将分享如何通过慢SQL分析工具和常用优化手段&#xff0c;来解决慢SQL的问题。首先让我们看一下慢SQL的定义。 什么是慢SQL 简单来说&#xff0c;慢SQL指的是执行时间较长的SQL语句。在数据库中&#xff0c;一个查询的运行时间往往会受到多种因素的影响…...

数据库实验三 数据查询二

任务描述 本关任务&#xff1a;查询来自借阅、图书、读者数据表的数据 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 如何多表查询 相关知识 查询多个数据表 在实际应用中&#xff0c;查询经常会涉及到几个数据表。 基于多个相关联的数据表进行的查询称为连接查询…...

论文笔记与实战:对比学习方法MOCO

目录 1. 什么是MOCO2. MOCO是干吗用的3. MOCO的工作原理3.1 一些概念1. 无监督与有监督的区别2. 什么是对比学习3. 动量是什么 3.2 MOCO工作原理1. 字典查找2. 如何构建一个好的字典3. 工作流程 3.3 &#xff08;伪&#xff09;代码分析 4. 其他一些问题5. MOCO v2和MOCO v35.1…...

大数据Doris(三十八):Spark Load 导入Hive数据

文章目录 Spark Load 导入Hive数据 一、Spark Load导入Hive非分区表数据 1、在node3hive客户端&#xff0c;准备向Hive表加载的数据 2、启动Hive&#xff0c;在Hive客户端创建Hive表并加载数据 3、在Doris中创建Hive外部表 4、创建Doris表 5、创建Spark Load导入任务 6…...

【Prometheus】mysqld_exporter采集+Grafana出图+AlertManager预警

前提环境&#xff1a;已经安装和配置好prometheus server 所有组件对应的版本&#xff1a; prometheus-2.44.0 mysqld_exporter-0.14.0 grafana-enterprise-9.1.2-1.x86_64.rpm alertmanager-0.25.0 prometheus-webhook-dingtalk-2.1.0 简介 mysql_exporter是用来收集MysQL或…...

softmax 函数

https://blog.csdn.net/m0_37769093/article/details/107732606 softmax 函数如下所示&#xff1a; y i exp ⁡ ( x i ) ∑ j 1 n exp ⁡ ( x j ) y_{i} \frac{\exp(x_{i})}{\sum_{j1}^{n}{\exp(x_j)}} yi​∑j1n​exp(xj​)exp(xi​)​ softmax求导如下&#xff1a; i j…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...

MyBatis中关于缓存的理解

MyBatis缓存 MyBatis系统当中默认定义两级缓存&#xff1a;一级缓存、二级缓存 默认情况下&#xff0c;只有一级缓存开启&#xff08;sqlSession级别的缓存&#xff09;二级缓存需要手动开启配置&#xff0c;需要局域namespace级别的缓存 一级缓存&#xff08;本地缓存&#…...

【实施指南】Android客户端HTTPS双向认证实施指南

&#x1f510; 一、所需准备材料 证书文件&#xff08;6类核心文件&#xff09; 类型 格式 作用 Android端要求 CA根证书 .crt/.pem 验证服务器/客户端证书合法性 需预置到Android信任库 服务器证书 .crt 服务器身份证明 客户端需持有以验证服务器 客户端证书 .crt 客户端身份…...

C++--string的模拟实现

一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现&#xff0c;其目的是加强对string的底层了解&#xff0c;以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量&#xff0c;…...

Java中栈的多种实现类详解

Java中栈的多种实现类详解&#xff1a;Stack、LinkedList与ArrayDeque全方位对比 前言一、Stack类——Java最早的栈实现1.1 Stack类简介1.2 常用方法1.3 优缺点分析 二、LinkedList类——灵活的双端链表2.1 LinkedList类简介2.2 常用方法2.3 优缺点分析 三、ArrayDeque类——高…...