首页 > 其他分享 >踩坑指南:入门OpenTenBase之部署篇

踩坑指南:入门OpenTenBase之部署篇

时间:2024-04-10 09:23:29浏览次数:27  
标签:指南 uuid gtm devel 命令 开源 OpenTenBase 入门

引言

OpenTenBase 企业级分布式HTAP开源数据库,具备高扩展性、商业数据库语法兼容、分布式HTAP引擎、多级容灾和多维度资源隔离等能力,成功应用在金融、医疗、航天等行业的核心业务系统。

image

这是我第一次参与开源项目,所以感到有些摸不着头脑。我看了一下源代码,发现它是用C语言开发的,这让我更加头疼。不过,不管是哪个开源项目,都会存在各种问题(issue)。选择一些简单或中级的开发任务来练习还是一个不错的主意。毕竟,这是一个锻炼自己的机会。在现实工作中,没有任何公司会容忍一个缺乏基础的开发人员去练习,因为那可能导致生产事故。因此,开源项目是一个快速提升自己能力的途径。

如果你也对此感兴趣,可以参考这个链接:https://competition.atomgit.com/?utm_source=atomgit

要开始参与项目,首先要从部署和启动开始。如果没有本地的开发环境,是不可能真正加入其中的。

开始踩坑

官方源码地址:git clone https://github.com/OpenTenBase/OpenTenBase

在这篇文章中,我以Centos 8为例展示了如何进行部署。如果你需要了解基本的安装操作步骤,可以参考这个链接:https://docs.opentenbase.org/guide/01-quickstart

我就不再一一演示这些基本步骤了,而是想分享一些官方文档中没有提及的各种奇葩问题的解决方法。

uuid-devel匹配不到

上来第一步就发现了问题,当执行环境依赖安装时yum -y install gcc make readline-devel zlib-devel openssl-devel uuid-devel bison flex git

在Centos 8系统上,可能会遇到一个错误提示:找不到 uuid-devel 软件包。这是因为在Centos 8的默认软件仓库中找不到 uuid-devel 软件包,尽管 uuid-devel 实际上是一个必需的依赖项。此外,安装类似uuid依赖包也无法解决问题,否则在执行configure命令时可能会出现错误提示:configure: error: library 'ossp-uuid' or 'uuid' is required for OSSP UUID

幸运的是,CentOS的“PowerTools”软件库中包含了 uuid-devel 软件包,但默认情况下未启用。要启用该软件库,可以使用以下命令dnf config-manager --set-enabled powertools,如果没有dnf命令,则执行一下:yum install dnf-plugins-core

configure: error: readline library not found

在执行configure命令时报错:configure: error: readline library not found

如果遇到这个问题,可以尝试执行以下命令来安装必要的依赖包:yum -y install gcc make readline-devel即可

确保所有的依赖环境都已安装完毕后,再执行make -sj命令。在执行这一步之前,请确保剩余可用内存大于等于4G,以避免内存溢出问题。尽管官方文档建议最低内存为4G,但我建议你将内存扩大至8G,以确保后续执行init all命令时不会遇到各种奇怪的问题。切记,不要将内存设置得过低,否则可能会导致后续命令的异常行为。

环境及ssh

执行vim ~/.bashrc编辑系统环境变量后记得source ~/.bashrc,要不然无法找到命令pgxc_ctl

在集群部署过程中,只有一台服务器需要进行编译操作,其他服务器只需进行环境变量配置、用户及目录设置以及SSH连接的配置。这样设计的原因是因为在执行deploy all命令时,已经编译好的安装包会被发送到其他机器上。

为了实现集群节点机器之间的SSH无密码登录,首先需要在各个节点机器上配置好SSH密钥认证。这样一来,在部署和初始化过程中,可以通过SSH连接到每个节点的机器而无需输入密码。在这个过程中,需要确保已经打通了第二台及其IP的SSH连接,并且也打通了自己机器的SSH连接。

ssh-copy-id -i ~/.ssh/id_rsa.pub destination-user@destination-server

启动和节点排查

在进行集群部署时,接下来的步骤是使用pgxc_ctl进行部署。如果对pgxc_ctl的命令不熟悉,可以通过使用help命令来查看帮助文档。在我的机器上,当我运行monitor all命令时,只能显示一个信息然后程序强制退出,这表明肯定有节点启动失败了。因此,建议单独使用monitor命令来查看各个节点的状态,以便更清楚地了解每个节点的运行情况。

image

如果某一个一直无法正常启动,比如显示gtm_ctl: another server might be running; trying to start server anyway,那么可能会是你没有正常关闭,通常需要你手动去删除对应的pid文件,

本次以gtm为例,如果不知道的pid文件位置在哪里,那么可以使用find / -name '*gtm*.pid',找到后删除对应的文件即可。然后再次启动start all。

如果还是无法启动,那么则可以去看下对应日志,还以gtm为例。cd /data/opentenbase/data/gtm/slave/gtm_log进入对应日志目录,然后查看日志。我这里显示的最后是

image

建议考虑进行扩容操作。显然这里资源不足。如果你的内存已经达到了8GB,那么可以考虑进一步扩展CPU资源至2核心。我目前的系统只有1核心的CPU,显然已经不够用了,扩容后系统性能应该会恢复正常。

image

总结

通过本次经历,我了解了OpenTenBase开源项目的基本情况以及参与该项目的一些经验和技巧。作为一个初次参与开源项目的成员,建议选择简单或中级的开发任务来练习,因此,通过参与开源项目,我们不仅可以提升自己的技术能力,还可以学习到解决问题的方法,为未来的工作和学习打下坚实的基础。

标签:指南,uuid,gtm,devel,命令,开源,OpenTenBase,入门
From: https://www.cnblogs.com/guoxiaoyu/p/18116318

相关文章

  • Java入门基础知识第八课(数组)——冒泡排序、Arrays工具类
    前面二白讲了关于数组的概念、语法以及简单的输入输出,实际上关于数组的知识还有很多,接下来咱们讲一下冒泡排序以及一些常用的Arrays工具类,需要记忆的知识很多,而且容易混淆。一、冒泡排序简介(原理)升序为例:从头开始,每次比较相邻两数小的交换到前面每轮结束后最大的数交换到......
  • 计算机视觉CV从入门到精通
    题注:本人一线大厂工作多年,有丰富的项目实战经验,计划编写计算机视觉CV从入门到精通。一、计算机视觉CV本教程主要大纲如下:数学基本理论;图像处理的基本应用,包括opencv库的基本图像处理运用;python编程、pytorch深度学习框架的理论与应用;标注工具的使用以及数据集的处理适配;算法......
  • 2024年幻兽帕鲁/Palworld服务器部署指南:从入门到精通的实战教程
    随着幻兽帕鲁(Palworld)这款游戏的持续升温,越来越多的玩家渴望能够拥有自己的专属服务器,与好友们畅享不受限的组队冒险。好消息是,现在搭建幻兽帕鲁服务器,比以往任何时候都要简单。今天,就让我带你走进这个神秘而富有创意的幻兽世界,手把手教你如何轻松搭建自己的游戏服务器。一、......
  • 免费云服务器推荐:腾讯云2024年免费领取指南全解析
    随着云计算的日益普及,越来越多的用户开始关注腾讯云等云服务提供商。其中,免费试用云服务器成为了不少初学者的首选。那么,腾讯云到底有没有免费的云服务器呢?答案是肯定的。接下来,就为大家带来2024年腾讯云免费云服务器的领取指南。首先,准备工作是必不可少的。你需要通过腾讯云......
  • 2024年幻兽帕鲁/Palworld专用服务器搭建指南:小白版,轻松上手!
    对于热爱《幻兽帕鲁》的玩家们来说,能够与好友一同联机冒险,无疑是增添游戏乐趣的一大方式。但如何轻松搭建一个稳定的联机服务器,却常常成为困扰大家的难题。今天,我将为大家带来一篇简单易懂的服务器搭建攻略,让你从此告别烦恼,与好友尽享游戏时光!首先,我们要访问的是阿里云的游戏......
  • 幻兽帕鲁/Palworld服务器部署教程:从入门到精通的完整创建流程
    近期,备受瞩目的游戏《幻兽帕鲁》风潮再起,无数热爱冒险与探索的玩家们都渴望在这片神秘的土地上留下自己的足迹。然而,随着玩家数量的激增,官方服务器开始显现出其不稳定性,卡顿、掉线等问题时有发生。这时,拥有一台专属的《幻兽帕鲁》游戏服务器便成了许多玩家的新追求。好消息是,......
  • Linux硬盘故障排除指南:Smartctl、Dmesg和Fsck使用详解
     文章目录引言Smartctl什么是SmartctlSmartctl的作用如何安装和使用SmartctlSmartctl使用示例和解释Dmesg什么是DmesgDmesg的作用如何使用DmesgDmesg使用示例和解释Fsck什么是FsckFsck的作用如何使用FsckFsck使用示例和解释故障......
  • 数据库sql入门
    目录前言:一、什么是sql1、定义2、类型二、什么是数据库三、数据库的增删改1、查询数据库  2、创建数据库 3、删除数据库4、选择进入数据库5、创建表6、查看表的信息7、查看数据表列表8、删除数据表9、修改数据库表名 10、修改字符集11、写入内容12、增......
  • 【编译原理】Antlr 入门使用
    前面文章我们学习了编译器前端的词法和语法分析工具,本篇我们来看看如何借助Antlr工具,快速生成词法和语法分析代码。一、安装mac环境:1)安装brewinstallantlr2)配置classpath(把Antlr的JAR文件设置到CLASSPATH环境变量中,以便顺利编译所生成的Java源代码。)vi~/.b......
  • 第 9 场 小白入门赛 字典树考试
    题目:4.字典树考试【算法赛】-蓝桥云课(lanqiao.cn)思路:我们可以先抛开题目,想一下一个二进制数是111111111 --->9个1,题目说(Ai&Aj)所以两个1一个组合,我们用最笨的方式取枚举----->是8+7+6+5+.......+1是36两两一组,想想X个1如何算呢?是不是应......