编译安装ClickHouse时,下载依赖组件失败的解决方法

问题现象描述

编译安装ClickHouse时,下载相关依赖项过程中,有部分组件下载失败,提示“Failed to recurse into submodule path...”,如下图所示:

关键过程、根本原因分析

由于下载依赖组件过程中,网络服务器承载量达到极限,导致部分组件下载失败。

结论、解决方案及效果

  1. 通过.gitmodules文件查看对应依赖的下载链接。

    1
    2
    cd /home/ClickHouse
    vi .gitmodules
    

  2. 进入“/contrib”目录,将对应错误的目录进行删除,然后使用git clone重新下载。

    1
    cd contrib
    
    • 删除arrow包并重新下载。
      1
      2
      rm -rf arrow
      git clone git://github.com/apache/arrow
      

    • 删除brotli包并重新下载。
      1
      2
      rm -rf brotli
      git clone git://github.com/google/brotli.git
      

    • 删除cppkafka包并重新下载。
      1
      2
      rm -rf cppkafka
      git clone git://github.com/mfontanini/cppkafka.git
      

    • 删除grpc包并重新下载。如果当前包要求从指定的版本分支中下载,请在git clone后加上-b 分支版本号,如下所示:
      1
      2
      rm -rf grpc
      git clone -b v1.25.0 git://github.com/ClickHouse-Extras/grpc.git
      

      1. 可以使用git branch查看当前版本是否是v1.25.0分支版本。
        1
        cd grpc && git branch
        

      1. 输入q按键退出,同时退出当前目录。
        1
        cd ..
        
    • 删除msgpack-c包并重新下载。
      1
      2
      rm -rf msgpack-c
      git clone git://github.com/msgpack/msgpack-c
      

    • 删除rapidjson包并重新下载。
      1
      2
      rm -rf rapidjson
      git clone git://github.com/ClickHouse-Extras/rapidjson
      

    • 删除simdjson包并重新下载。
      1
      2
      rm -rf simdjson
      git clone git://github.com/ClickHouse-Extras/simdjson