鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

源码编译安装

  1. 进入安装目录,安装目录可根据实际情况修改。
    1
    cd /home
    
  2. 下载源码。
    1
    2
    3
    4
    git clone --recursive --shallow-submodules https://github.com/ClickHouse/ClickHouse.git -b v24.3.11.7-lts --single-branch --depth=1
    cd ClickHouse
    git submodule sync
    git submodule update --init --recursive
    
    1. 这一步比较慢,同步的文件较多。拉取完源码并更新完子模块后,开始编译。以下为检查脚本,在“/home/ClickHouse”目录下创建检查脚本。
      1
      vi file_check.sh
      
    2. “i”进入编辑模式,在文件中添加以下内容。用于确保每个文件都是包含文件的,不是空的。
      #!/bin/bash
      base_dir=$(cd $(dirname "$0")&&pwd)
      flag=0
      for dir in $(ls -d "$base_dir"/contrib/*/);
      do
         file_count=$(ls -1 "$dir" | wc -l)
         if [ "$file_count" -eq 0 ]; then
             echo "Directory with 0 files: $dir"
             flag=1
         fi
      done
      if [ $flag -eq 0 ]; then
         echo "检查完成 contrib目录下不存在空文件夹"
      fi
    3. Esc键,输入:wq!,按Enter保存并退出编辑, 然后执行脚本。
      1
      2
      chmod +x file_check.sh
      ./file_check.sh
      
    4. 检查通过屏幕回显如下图。

  3. 编译选项修改。
    1. 进入“/home/ClickHouse/cmake”目录,打开“cpu_features.cmake”文件。
      1
      2
      cd /home/ClickHouse/cmake
      vi cpu_features.cmake
      
    2. “i”进入编辑模式,修改NO_ARMV81_OR_HIGHER(当前版本下为第26行)编译选项下的内容,如下所示。
      1
      set (COMPILER_FLAGS "${COMPILER_FLAGS} -march=armv8.2-a+simd+crypto+dotprod")
      

      NO_ARMV81_OR_HIGHER编译选项中新增simd指令,同时编译选项中加上-DENABLE_THINLTO=ON,会对性能有收益。

    3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  4. 构建与编译。
    1
    2
    3
    cd /home/ClickHouse/
    mkdir build
    cmake -DPARALLEL_COMPILE_JOBS=`nproc` -DENABLE_CLICKHOUSE_SELF_EXTRACTING=1 -DNO_ARMV81_OR_HIGHER=1 -DENABLE_BUILD_PROFILING=ON -DPARALLEL_LINK_JOBS=32 -DENABLE_THINLTO=ON -DENABLE_TESTS=OFF -DENABLE_RUST=OFF -S . -B build
    

    成功构建时终端回显如下。

    构建完成后的“build”目录结构如下(通过ls ./build查看)。

    1
    cmake --build build -j `nproc`
    

    编译完成后会在“build/programs”目录下生成如下文件(通过ll ./build/programs查看)。

  5. 安装clickhouse,在出现“Enter password for the default user”的字样处直接回车。
    ./build/programs/clickhouse install