暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
TiDB 源码编译之 TiFlash 篇.txt
103
5页
0次
2023-08-19
5墨值下载
导言
TiFlash 从去年四月一日开源至今已经过去将近一年半,这段时间里 TiFlash v6.0.0-DMR 升级到了
v7.3.0-DMR,并增加了若干新特性,比如支持 MPP 实现窗口函数框架,新增支持若干算子和函数下推,支
AWS S3 算存分离等。先来回顾一下 TiFlash 资源精华帖,【重磅消息】TiFlash 终于开源啦!,和
TiFlash 时间线。
tiflashtimeline.png
前两篇文章 《TiDB 源码编译之 PD/TiDB Dashboard 篇》 和 《TiDB 源码编译之 TiUP 篇》 分别阐述
了如何编译 TiUPPD 以及 TiDB Dashboard。本文将介绍如何编译 TiFlash,只是本文使用的技术栈与
前两篇文章有所不同,建议熟练掌握 Linux 知识和有一定编译经验的小伙伴继续往下浏览。
环境依赖
如若想成为 TiFlash Committer,首先要有能力编译 TiFlash 源码,并且可以在本地进行 Debug 调试,
下面先来看下在本地环境编译源码需要准备哪些依赖包。
0️ 编译环境
写作本文时使用的环境为 CentOS 7.9.20098c16g,这个硬件配置勉强够用,期间遇到过资源使用过载
导致卡死的情况,如果有条件建议用更好的配置。至于操作系统,CentOS 7.9.2009 EOL 时间为 Jun
30th, 2024 ,其上游 RHEL 7.9 的生命周期支持延长到了 June 30, 2028,所以,现在及未来几年
CentOS 7.9.2009 依旧是企业级主流操作系统。
1️ 基础工具包
安装基础工具包,用于源码编译。其中,devtoolset-10 用于临时调用 gcc 10 来编译 LLVM/Clang
ninja-build 用于构建源码工程。
yum install devtoolset-10 ninja-build
查看 Ninja 版本:
$ ninja --version
1.10.2
2️ 安装 rust 环境
curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal --default-
toolchain nightly; source $HOME/.cargo/env
安装成功。
nightly-x86_64-unknown-linux-gnu installed - rustc 1.73.0-nightly (28eb857b9
2023-08-12)
Rust is installed now. Great!
$ rustc --version
rustc 1.73.0-nightly (28eb857b9 2023-08-12)
3️ 安装 OpenSSL
TiFlash 中,OpenSSL 的版本使用的是 1.1.1 系列,目前尚未升级大版本到 OpenSSL 3.x
该包与安全性强相关,所以会不断升级小版本,目前应该是 TiDB 全栈升级到 1.1.1t 版本。
安装步骤如下:
wget https://github.com/openssl/openssl/archive/refs/tags/OpenSSL_1_1_1t.tar.gz
tar zxf OpenSSL_1_1_1t.tar.gz
cd openssl-OpenSSL_1_1_1t
./config --prefix=/opt/openssl --openssldir=/opt/openssl -fPIC no-shared no-
afalgeng -static
make
sudo make install_sw install_ssldirs
安装完成后查看版本信息。
$ ./openssl version
OpenSSL 1.1.1t 7 Feb 2023
4️ 安装 CMake3 / ccmake
CentOS 7 下默认安装 CMake 2TiFlash 编译需要 CMake 3.21.0+ 版本,下面步骤为编译安装
CMake 3.22.1
wget https://github.com/Kitware/CMake/releases/download/v3.22.1/cmake-
3.22.1.tar.gz
tar zxf cmake-3.22.1.tar.gz
cd cmake-3.22.1
./configure
gmake
sudo make install
安装完成:
$ which cmake
/usr/local/bin/cmake
$ cmake --version
cmake version 3.22.1
CMake suite maintained and supported by Kitware (kitware.com/cmake).
$ ccmake --version
ccmake version 3.22.1
CMake suite maintained and supported by Kitware (kitware.com/cmake).
5️ 安装 LLVM/Clang
CentOS 7 下,gcc 版本为 4.8 过于老旧,需要临时切换到 gcc 10
$ scl enable devtoolset-10 bash
$ gcc --version
gcc (GCC) 10.2.1 20210130 (Red Hat 10.2.1-11)
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
下载 LLVM 源码,并进行编译安装。
git clone https://github.com/llvm/llvm-project --depth=1 -b llvmorg-13.0.0
cd llvm-project
mkdir build
cmake -DCMAKE_BUILD_TYPE=Release -GNinja -S llvm -B build
-DLLVM_ENABLE_PROJECTS="clang;lld" -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi"
-DLLVM_TARGETS_TO_BUILD=Native
ninja
sudo ninja install
编译日志输出:
of 5
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜