天天看點

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源碼編譯調試