1. 程式人生 > 其它 >【Clickhouse】Mac M1編譯安裝Clickhouse

【Clickhouse】Mac M1編譯安裝Clickhouse

當前最新版本:22.3.3.2
編譯日期:2022-04-19
編譯環境:MacBookPro M1
官方編譯安裝連結:
https://clickhouse.com/docs/en/getting-started/install/
https://clickhouse.com/docs/en/development/build-osx/

1. 安裝準備

# homebrew安裝略
# xcode和Command Line Tools安裝略

# 安裝必須的編譯器、編譯工具及庫
brew update
brew install cmake ninja libtool gettext llvm gcc binutils

2. 下載程式碼

git clone --recursive [email protected]:ClickHouse/ClickHouse.git
# ...alternatively, you can use https://github.com/ClickHouse/ClickHouse.git as the repo URL.
cd Clickhouse
git checkout 
#或者下載好自己經編譯版本
cd ClickHouse-22.3.3.44-lts

3. 開始編譯

$ cd ClickHouse
$ rm -rf build
$ mkdir build
$ cd build
$ cmake -DCMAKE_C_COMPILER=$(brew --prefix llvm)/bin/clang -DCMAKE_CXX_COMPILER=$(brew --prefix llvm)/bin/clang++ -DCMAKE_AR=$(brew --prefix llvm)/bin/llvm-ar -DCMAKE_RANLIB=$(brew --prefix llvm)/bin/llvm-ranlib -DOBJCOPY_PATH=$(brew --prefix llvm)/bin/llvm-objcopy -DCMAKE_BUILD_TYPE=RelWithDebInfo ..

日誌...略
-- Will build ClickHouse 22.3.3.2 revision 54460
INFONot generating debugger info for ClickHouse functions
-- StorageFileLog is only supported on Linux
-- ClickHouse modes:
-- Server mode: ON
-- Client mode: ON
-- Local mode: ON
-- Benchmark mode: ON
-- Extract from config mode: ON
-- Compressor mode: ON
-- Copier mode: ON
-- Format mode: ON
-- Obfuscator mode: ON
-- ODBC bridge mode: OFF
-- Library bridge mode: ON
-- ClickHouse install: ON
-- ClickHouse git-import: ON
-- ClickHouse keeper mode: ON
-- ClickHouse keeper-converter mode: ON
-- bash_completion will be written to /usr/local/share/bash-completion/completions
-- Target check already exists
-- /Users/momo/studySpace/opensource/clone/ClickHouse/utils: Have 2677 megabytes of memory.
        Limiting concurrent linkers jobs to 1 and compiler jobs to OFF (system has 8 logical cores)
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/momo/studySpace/opensource/clone/ClickHouse/build


$ cmake --build . --config RelWithDebInfo
# The resulting binary will be created at: ./programs/clickhouse
..略
[7716/7716] cd /Users/momo/studySpace/opensource/clone/ClickHouse/build/programs && /opt/homebrew/Cellar/cmake/3.23.0/bin/cmake -E create_symlink clickhouse clickhouse-client

如果報如下錯誤:
CMake Error at CMakeLists.txt:67 (message):
Submodules are not initialized. Run
git submodule update --init --recursive

解決辦法:按照提示執行命令
git submodule update --init --recursive

4. 修改機器配置

修改系統 maxfiles配置
sudo vim /Library/LaunchDaemons/limit.maxfiles.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
        "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>limit.maxfiles</string>
    <key>ProgramArguments</key>
    <array>
      <string>launchctl</string>
      <string>limit</string>
      <string>maxfiles</string>
      <string>524288</string>
      <string>524288</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>ServiceIPC</key>
    <false/>
  </dict>
</plist>

新增許可權
sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
驗證檔案是否正確
plutil /Library/LaunchDaemons/limit.maxfiles.plist
重新載入配置(或重啟)
sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist
檢查配置是否生效
ulimit -n 或者 launchctl limit maxfiles

5. 執行Clickhouse

啟動server
./build/programs/clickhouse-server --config-file ./programs/server/config.xml
啟動client
./build/programs/clickhouse-client

資料庫目錄就在${clickhouse_src}/data目錄下