如何访问TDH中Inceptor 底层的元数据库TxSQL

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 如何访问TDH中Inceptor 底层的元数据库TxSQL

1 Inceptor概述

在大数据生态系统中,HIVE是离线数据仓库事实上的标准,绝大多数的大数据分析型系统或数据仓库系统,都是基于HIVE来构建的。

在星环的大数据平台TDH中,在功能上对应开源HIVE的服务是Inceptor,Inceptor底层是基于开源的HIVE和Spark 整合开发而来的,其中:

  • Inceptor Server 对应 HIVE 的查询引擎 HS2;
  • Inceptor Metastore 对应HIVE的元数据引擎 HMS;
  • Inceptor Executor 对应 spark executor;


image.png


2 TxSql概述

  • HIVE的元数据引擎 HMS在底层依赖一个RDBMS元数据库进行元数据的存储查询和管理,该RDBMS常用的有mysql/pg/oracle等,在实践中我们一般使用Mysql;
  • Inceptor 的元数据引擎 Inceptor Metastore 在底层同样依赖一个RDBMS元数据库进行元数据的存储查询和管理,TDH中这个RDBMS使用的是TxSQL:


image.png


查看星环官方文档可知,TxSQL基于开源的PhxSQL项目开发,是一个强一致、高可用的分布式数据库系统,它建立在MySQL基础上,并对其传统的主从复制方案作出了改进,将传统的主从复制机制和Paxos协议结合起来,从而更好的实现了高可用。 PhxSQL官方网址是https://github.com/Tencent/phxsql,查看PhxSQL官方文档可知,PhxSQL is a high-availability and strong-consistency MySQL cluster built on Paxos and Percona,其架构图如下: PhxSQL集群是三层架构,对于集群中的每一个节点,部署3个模块(PhxSQLProxy,MySQL,PhxBinlogSvr):

  • PhxSQLProxy负责请求的透传;
  • 多个节点上的PhxBinlogSvr组成一个可靠的日志存储集群和可靠的Master信息存储集群,PhxBinlogSvr同时承担Agent的责任;
  • Master结点上的PhxSync负责将MySQL的Binlog发送到PhxBinlogSvr;

image.png

查看TxSQL的底层进程,可见其跟PhxSQL的三次架构是一致的:

image.png


3 如何访问TDH中Inceptor 底层的元数据库TxSQL

有时候我们需要对元数据库TxSQL做一些运维操作,比如备份和恢复,此时如何登录进而访问TDH中Inceptor 底层的元数据库TxSQL呢? 大体上来讲,由于TDH中TxSQL是以Docker容器的形式来运行和管理的,我们需要使用 k8s/docker相关命令获取 TxSQL的端口用户名和密码,并通过TxSQL的相关命令获取master 节点地址,然后通过mysql命令登录该master节点进而通过sql查询和操作数据。

3.1 获取 TxSQL的端口,用户名和密码

image.png

3.2 获取 master 节点地址


image.png

注:这里显示的端口好17000,是TxSQL各个节点内部通信用的,通过客户端命令如Mysql等登录TxSQL时不能使用该端口,否则会报错“ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0”,如下图所示:

image.png


3.3 通过mysql命令登录该master节点进而通过sql查询和操作数据

image.png

4 相关命令汇总

kubectl get pods |grep -i txsql
 kubectl exec txsql-server-txsql1-86c458896b-9777m -it bash
 /usr/bin/txsql/tools/txsql.sh list
 grep -i port /etc/txsql1/conf/my.cnf 
 cat /etc/txsql1/conf/db.properties 
 mysql -h 10.20.159.114 -P 13306 -uroot -pxxx
 ss -anp|egrep '3316|13306|17000'
 ps -ef|egrep 5407|5523|5588
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
存储 缓存 NoSQL
MongoDB内部的存储原理
这篇文章详细介绍了MongoDB的内部存储原理,包括存储引擎WiredTiger的架构、btree与b+tree的比较、cache机制、page结构、写操作流程、checkpoint和WAL日志,以及分布式存储的架构。
49 1
MongoDB内部的存储原理
|
5月前
|
分布式计算 Hadoop 存储
|
6月前
|
存储 SQL NoSQL
数据库是存储和管理数据的核心组件
【5月更文挑战第14天】数据库是存储和管理数据的核心组件
76 1
|
Java API 数据库
基于数据库形式构建动态网关|学习笔记
快速学习基于数据库形式构建动态网关
102 0
|
存储 NoSQL Linux
Mongodb存储特性与内部原理(下)
Mongodb存储特性与内部原理(下)
254 0
Mongodb存储特性与内部原理(下)
|
存储 缓存 NoSQL
Mongodb存储特性与内部原理(上)
Mongodb存储特性与内部原理(上)
292 0
Mongodb存储特性与内部原理(上)
|
SQL 关系型数据库 Shell
「OushuDB」用户指南数据定义 创建和管理数据库 (中)
CREATE DATABASE实际上是通过拷贝一个现有的数据库进行工作的。缺省时,它拷贝名为template1的标准系统数据库。所以该数据库是创建新数据库的”模板”。如果你给template1增加对象,这些对象将被拷贝到随后创建的用户数据库中。这样的行为允许节点对数据库中的标准套件进行修改。比如,如果你把过程语言PL/Perl安装到template1里,那么你在创建用户数据库的时候它们就会自动可得,而不需要额外的动作。
155 0
「OushuDB」用户指南数据定义 创建和管理数据库 (中)
|
Shell 数据库连接 数据库
「OushuDB」用户指南数据定义 创建和管理数据库 (下)
回顾一下 http://www.oushu.com/docs/ch/server-configuration.html 我们知道OushuDB 服务器提供了大量的运行时配置变量。你可以为许多这种变量设置特定于数据库的缺省数值。
149 0
「OushuDB」用户指南数据定义 创建和管理数据库 (下)
|
SQL 存储 关系型数据库
「OushuDB」用户指南数据定义 创建和管理数据库 (上)
数据库是一些SQL对象(“数据库对象”)的集合;通常每个数据库对象(表、函数等)属于并且只属于一个数据库。不过有几个系统表 (比如pg_database)属于整个集群并且可以在集群之内的每个数据库里访问。更准确地说,一个数据库是一个模式的集合,而模式包含表、函数等等。因此完整的层次是这样的:服务器→数据库→模式→表(或者其它类型对象,比如函数)。
176 0
「OushuDB」用户指南数据定义 创建和管理数据库 (上)
|
存储 数据库
pageSet的底层数据库存储逻辑
Created by Wang, Jerry, last modified on Mar 26, 2015
123 0
pageSet的底层数据库存储逻辑