编译代码
编译所有源码后获取二进制文件doris_be,使用编译得到的doris_be替换集群BE中的所有doris_be以获取性能加速。
- 进入“/opt/tools/installed/”目录,下载并解压Doris-2.1.2-rc04源码。
1 2 3 4
cd /opt/tools/installed wget https://github.com/apache/doris/archive/refs/tags/2.1.2-rc04.zip mv 2.1.2-rc04.zip ./doris-2.1.2-rc04.zip unzip doris-2.1.2-rc04.zip
- 下载并解压预编译第三方库doris-thirdparty-prebuild-arm64.tar.xz,并移动到Doris文件“/thirdparty”目录下。
1 2 3 4 5
cd /opt/tools/installed wget https://github.com/apache/doris-thirdparty/releases/download/automation/doris-thirdparty-prebuild-arm64.tar.xz tar -xvf doris-thirdparty-prebuild-arm64.tar.xz cp installed/lib64/libjemalloc_doris_pic.a installed/lib64/libjemalloc_arrow.a mv installed /opt/tools/installed/doris-2.1.2-rc04/thirdparty/
- 下载并解压第三方源码doris-thirdparty-source.tgz,将源码包移动到Doris文件“/thirdparty”目录下并解压bitshuffle-0.5.1.tar.gz。
1 2 3 4 5 6
cd /opt/tools/installed wget https://github.com/apache/doris-thirdparty/releases/download/automation/doris-thirdparty-source.tgz tar -xzf doris-thirdparty-source.tgz mv src /opt/tools/installed/doris-2.1.2-rc04/thirdparty/ cd /opt/tools/installed/doris-2.1.2-rc04/thirdparty/src tar -xvf bitshuffle-0.5.1.tar.gz
- 下载Bitshuffle源码和Patch,解压Patch到源码路径,并得到修改后bitshuffle_core.c,用修改后的bitshuffle_core.c替换“thirdparty/src/bitshuffle-0.5.1/src/bitshuffle_core.c”。
- 进入“/opt/tools/installed”目录,下载并解压Bitshuffle源码。
1 2 3
cd /opt/tools/installed wget https://github.com/kiyo-masui/bitshuffle/archive/0.5.1.tar.gz tar -xvf 0.5.1.tar.gz
- 下载Bitshuffle Patch并移动到Bitshuffle源码的项目路径下。
1 2 3
cd /opt/tools/installed/ wget https://gitee.com/kunpengcompute/boostkit-bigdata/releases/download/24.0.RC5-doris_neon_optimization/bitshuffle.patch mv bitshuffle.patch /opt/tools/installed/bitshuffle-0.5.1/
- 应用优化后的bitshuffl.patch。
1 2
cd /opt/tools/installed/bitshuffle-0.5.1/ patch -p1 < bitshuffle.patch
- 用修改后的bitshuffle_core.c替换“thirdparty/src/bitshuffle-0.5.1/src/bitshuffle_core.c”。
1
cp /opt/tools/installed/bitshuffle-0.5.1/src/bitshuffle_core.c /opt/tools/installed/doris-2.1.2-rc04/thirdparty/src/bitshuffle-0.5.1/src/bitshuffle_core.c
- 进入“/opt/tools/installed”目录,下载并解压Bitshuffle源码。
- 修改“thirdparty/build-thirdparty.sh”,使其仅编译Bitshuffle。
- 打开文件。
1
vi /opt/tools/installed/doris-2.1.2-rc04/thirdparty/build-thirdparty.sh
- 按“i”进入编辑模式,注释第1796行到1869行,新增1871行package的赋值并将packages赋值为bitshuffle。
1
packages=(bitshuffle)
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开文件。
- 使用GCC 12编译第三方的Bitshuffle。
1 2 3
export DORIS_TOOLCHAIN=gcc cd /opt/tools/installed/doris-2.1.2-rc04/thirdparty sh build-thirdparty.sh
- 使用Clang 17编译BE。
- 使用以下命令添加环境变量。
1
export DORIS_TOOLCHAIN=clang
- 打开“build.sh”文件。
1 2
cd /opt/tools/installed/doris-2.1.2-rc04 vi build.sh
- 按“i”进入编辑模式,在文件505行和506行指定子模块版本,使其与Doris主代码兼容。
update_submodule "be/src/apache-orc" "apache-orc" "https://github.com/apache/doris-thirdparty/archive/d7975612de8b9711a284af9d7cba5248c49f73b3.tar.gz" update_submodule "be/src/clucene" "clucene" "https://github.com/apache/doris-thirdparty/archive/ef95e67ae3123409f006072194f742a079603159.tar.gz"
- 在文件550行增加编译选项--gcc-install-dir=/opt/tools/installed/gcc-12.3.1-2024.05-aarch64-linux/lib64/gcc/aarch64-linux-gnu/12.3.1。
1
-DEXTRA_CXX_FLAGS="${EXTRA_CXX_FLAGS} --gcc-install-dir=/opt/tools/installed/gcc-12.3.1-2024.05-aarch64-linux/lib64/gcc/aarch64-linux-gnu/12.3.1"
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 编译BE。
1
STRIP_DEBUG_INFO=ON sh build.sh --clean --be
- 使用以下命令添加环境变量。
- 得到Clang 17编译后的doris_be。
BE编译完成后获取二进制文件doris_be。
1
cd /opt/tools/installed/doris-2.1.2-rc04/be/output/lib
父主题: 软件编译