PolarDB实操课] 04.通过源码部署PolarDB-X企业版
内容介绍:
一、编译基础
二、使用源码编译部署PolarDB-X企业版
三、演示实例
四、总结
本次分享的主题是通过源码部署PolarDB-X企业版,由PolarDB开源架构师王江颖分享。
本次课程通过源码部署PolarDB-X的企业版,首先了解编译的基础知识,编译是将高级编程语言写成的源代码转换成低级语言的过程,以便计算机可以直接执行程序。高级编程语言是平时所用的语言,例如C、C++、java、python等。低级语言是计算机能够直接识别的语言,如机器语言、字节码,因为计算机不能识别高级编程语言,所以需要通过编译把高级语言转换成低级语言,以便于执行程序。
一、编译基础
编译分为六部分。
1. 预处理
预处理指编译器处理源代码文件中的预处理指指令,编译器是软件程序,它可以读取高级语言写成的源代码,经过一系列的分析和转换过程,产生等价的低级语言代码。常见的编译器有GCC。
2. 词法分析
词法分析是将源代码分解成一串标记,也就是tokens,包括关键字、变量、常量等。
3. 语法分析
语法分析是将标记组成语法结构,表示成一棵语法树。在完成语法分析后,进入到语义分析的阶段,语义分析是检查语法树是否有意义,比如变量的类型是否正确、函数调用是否有效等。
4. 代码生成的阶段
代码生成就是把语法结构转换成目标代码的过程。
5. 优化阶段
优化阶段是改进生成的代码,使代码更快、更节省资源。优化不仅出现在最后一个阶段,在编译的整个过程中都会一直不断的去优化代码。
6. 构建系统
构建系统是当项目复杂时,源代码会被分散在许多不同的文件和目录当中,例如PolarDB-X的源代码会分散在不同的文件和目录当中,构建系统就可以把源代码进行统一的管理,并且帮助程序员控制整个编译的过程。将源代码文件转换成最终的可执行程序,方便进行编译。常见的构建系统有Cmake、 Automake、 Maven等。
7. 库
库是一组事先编译好的代码的集合。可以由编译器在编译新程序时使用,可以大幅提高编译的速度,避免重新编写常见功能的代码。常见的库有Boost。
8. 软件包管理器
软件包管理器是一种工具或系统,用在计算机操作系统上自动安装、配置、更新和删除软件包。
在编译的过程中,开发者首先会写下源代码,使用GCC转换成机器代码,然后借助一些构建系统,比如借助C make或者Automake这样的工具去自动化整个编译的过程。使用Cmake命令进行自动化的构建,在编译的过程中使用boost提供一些丰富的功能,加速编译的过程。
二、使用源码编译部署PolarDB-X企业版
PolarDB-X企业版的代码是在github仓库上存储的。
1. PolarDB-X源代码结构
(1)polardbx-engine是存储节点DN的代码,DN节点就是存储节点。
(2)polardbx-sql是计算节点CN的代码。
(3)polardbx-cdc是日志节点CDC的代码。
(4)polardbx-glue是私有协议的代码。
2. 编译的过程
(1)准备环境
本次使用的环境是阿里云的云服务器ECS,操作系统是CentOS7.9版本,规格是24核48GiB。推荐使用8核16GiB以上的规格,小规格有可能导致编译不成功。并且需要使用一系列的工具,例如sudo、git、 make、 redhat-lsb-core等。
(2)编译
准备完环境后,在环境上安装工具,并且拉取源代码,拉取结束通过Make进行自动化编译。
(3)启动PolarDB-X
编译完成后,启动PolarDB-X数据库,连接登录PolarDB-X数据库。
三、演示实例
通过ECS进行编译,首先需要安装必要的工具。
1. 工具
(1)sudo是一个命令行工具。允许普通用户以超级用户的身份去运行命令,因为有一些命令只有超级用户才有权限去执行,需要赋予普通用户权限。
(2)git是一个分布式版本控制系统。
(3)make是很重要的一个编译过程的工具。通过单独的一个make命令,可以自动化的执行整个编译的过程。
(4)redhat-lsb-core工具提供LSB的支持和兼容linux版本的功能。
2. 执行代码
代码执行成功,工具安装完成。
#创建一个名为polarx的用户
useradd -ms /bin/bash polarx
echo
“
polarx: polarx
”
|chpasswd
//这两行代码指创建用户和创建密码
#接下来赋予polarx权限。
echo
“
polarx ALL=(ALL) NOPASSWD:ALL
”
>>/etc/sudoers
//polarx的用户在执行命令时不需要输入密码。这个过程自动化和加速整个编译的过程
#接下来通过su命令切换到polar x用户
su - polarx
#最后从github仓库拉取源代码
git clone
https://github.com/zhiliyao-polarx/polardbx.git
3.使用make编译。
#首先进入到polardbx 目录
cd polardbx
//通过cd命令进入到目录
#进入目录就直接去执行make命令。
make
//在编译过程中,make可以自动下载所有源码、工具和库等所有资源,并构建和安装polar DB-X。
直接执行make命令,在make命令中,安装了一些必要的配置工具,安装成功之后,拉取各个节点的源码,就是DN节点、CN节点、CDC节点和源码,并逐步编译。现在进行拉取polardbx-sql源码和polardbx-engine源码,polardbx-engine源码比较大,拉取的过程较慢,需要花费一定的时间,让后拉取polardbx-cdc源码,它是日志节点CDC的源码。进入编译环节,首先编译DN节点,其次编译CN节点,最后编译CDC节点,所有节点都编译完成,进行最后的收尾工作。这是编译完成的截图。
接下来进入到启动的阶段
#启动PolarDB-X数据库
./build/run/bin/polardb-x.sh start
//最后启动的cdc
start
. t
ry
polardb-x
by
进程,启动成功。
#连接PolarDB-X数据库
mysql -h127.0.0.1 -P8527 -upolardbx_root
//连接成功代表编译过程完成
四、课程总结
(1)本节课学习了编译的基本概念,以及编译的主要的阶段。
(2) 学习了编译所涉及的一些工具,包括编译器,构建系统库以及软件包管理器等。整个编译过程比较慢,通过make命令来进行操作,有一些环节没有看清楚,但工具在整个编译过程当中都有用到。
(3)学习了PolarDB-X源代码结构,DN、CN、CDC和私有协议对应源代码的仓库。
(4)通过实际演示的方式学习通过源码来部署PolarDB-X,其中重要的一点是,用make命令去自动的拉取代码,以及下载编译过程中所需的工具和库,在DN、CN、CDC节点都逐一的编译完成后,启动polar DB-X数据库。