天天看点

clickhouse mac安装_Clickhouse源码编译调试

1. 环境

MacOS 10.15.3 CLion Clickhouse 20.8.1.1

2. 代码编译

可按官网进行配置,The Beginner ClickHouse Developer Instruction

  1. 工具准备
    1. brew 安装命令:

      /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

    2. 使用brew安装编译器工具库 安装命令:

      /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

      (如果这里没法正确安装可以在网上直接下载安装包安装,然后配置环境变量)
  1. 拉取Clickhouse源码

    命令:

    git clone --recursive [email protected]:ClickHouse/ClickHouse.git

    可以在github按需求拉取对应版本代码。
  2. 本地编译源码

    命令:

    $ cd ClickHouse #创建build目录 $ mkdir build #执行编译命令 $ cmake .. -DCMAKE_CXX_COMPILER=`which clang++` -DCMAKE_C_COMPILER=`which clang` $ ninja $ cd ..

注意

cmake .. -DCMAKE_CXX_COMPILER=which clang++ -DCMAKE_C_COMPILER=which clang

命令时可能会出现如下报错:

CMake Error at CMakeLists.txt:149 (message):

  Cannot find objcopy.
           

解决步骤如下:

  • brew install binutils

  • mdfind -name objcopy

执行完之后后应该回返回类似下面的查询结果:

/Users/mac/Documents/GitHub/ClickHouse/contrib/llvm/llvm/utils/gn/secondary/llvm/tools/llvm-objcopy

/usr/local/Cellar/binutils/2.35/share/man/man1/objcopy.1

/usr/local/Cellar/binutils/2.35/x86_64-apple-darwin19.5.0/bin/objcopy

/usr/local/Cellar/binutils/2.35/bin/objcopy
           
objcopy

的目录为/usr/local/Cellar/binutils/2.35/bin/objcopy

  • 修改CMakeLists文件,文件定位到出错行
修改前:
find_program (OBJCOPY_PATH NAMES "llvm-objcopy" "llvm-objcopy-10" "llvm-objcopy-9" "llvm-objcopy-8" "objcopy")
           
修改后:
find_program (OBJCOPY_PATH NAMES "llvm-objcopy" "llvm-objcopy-10" "llvm-objcopy-9" "llvm-objcopy-8" "objcopy" PATHS "/usr/local/homebrew/Cellar/binutils/2.35/x86_64-apple-darwin19.3.0/bin/")
           
  • 删除之前的build文件重新编译
$ mkdir build

$ cd build

$ cmake .. -DCMAKE_CXX_COMPILER=`which clang++` -DCMAKE_C_COMPILER=`which clang` -DCMAKE_BUILD_TYPE=Debug -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON
           

3. 本地调试

编译完代码之后会在

../../build/programs

目录下生成一个

Clickhouse

文件

clickhouse mac安装_Clickhouse源码编译调试

3.1 运行本地服务

命令:

../../build/programs/clickhouse server /Users/test/users.xml

默认情况下,Clickhouse会在本地找config文件,可以通过参数

--config-file

手动指定

clickhouse mac安装_Clickhouse源码编译调试

执行结果如上。

3.2 调试

在CLion的菜单栏中点击

run

,选在

Attach to Process
clickhouse mac安装_Clickhouse源码编译调试

在弹出框中输入clikchouse,选择对应进程。

clickhouse mac安装_Clickhouse源码编译调试

没问题的话,就可以正常打断点调试了。

尝试本地客户端连接,执行sql。

命令:

../../build/programs/clickhouse client --host 127.0.0.1 --user admin --password 123

clickhouse mac安装_Clickhouse源码编译调试

执行语句:

select version

,成功在断点出停止执行。

clickhouse mac安装_Clickhouse源码编译调试