记录一下自己安装ClickHouse的过程,自己是按照官网的安装教程进行安装的,加上了自己安装过程中遇到的一些小问题,可以参考
如果下面的安装过程过时了或者不想看本人的安装请从官网查看最新的安装,官网地址:https://clickhouse.com/docs/en/development/build-osx/
电脑配置:Mac M1芯片
系统:Big Sur 11.6
1、安装homebrew
由于本人已安装了,这里就不写了,可以百度如何安装homebrew
2、安装Xcode和Command Line Tools
在AppStore中安装Xcode,比较大,11个G
安装最新版本的Command Line Tools
sudo rm -rf /Library/Developer/CommandLineTools sudo xcode-select --install
执行上面的命令后,会出现安装的对话框,点击继续进行安装,会需要下载,下载和安装过程会比较久
3、安装需要的 编译器、工具和库
安装之前,最好将brew的源换成中科大的,否则安装会很慢
临时更换为中科大的源
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git" export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles"
brew update
安装所需的编译器等
brew install cmake ninja libtool gettext llvm gcc binutils
4、拉取ClickHouse源码
拉取之前,最好使用github代理拉取源码,否则直接从github拉取会异常的慢(源码5个多G)
直接从github拉取源码
git clone --recursive https://github.com/ClickHouse/ClickHouse.git
使用代理拉取源码
git clone --recursive https://hub.fastgit.org/ClickHouse/ClickHouse.git
这里拉取的是最新的源码,如果想拉取ClickHouse以前的版本,自己百度如何拉取GitHub上的历史版本源码,本人没有试,这里就不写了,以前版本的源码是否可以在M1和BigSur 11.6上进行编译也没有尝试
5、构建ClickHouse
官网提供了三种方式来构建
下面的这三种方式,我使用Xcode的AppleClang编译器编译了三次都失败了,换了homebrew的Clang才编译成功,所以最好直接使用第二种方法
(1)使用Xcode的AppleClang编译器
cd ClickHouse rm -rf build mkdir build cd build cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .. cmake --build . --config RelWithDebInfo cd ..
(2)使用homebrew的Clang编译器
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_BUILD_TYPE=RelWithDebInfo .. cmake --build . --config RelWithDebInfo cd ..
(3)使用homebrew的GCC编译器
cd ClickHouse rm -rf build mkdir build cd build cmake -DCMAKE_C_COMPILER=$(brew --prefix gcc)/bin/gcc-11 -DCMAKE_CXX_COMPILER=$(brew --prefix gcc)/bin/g++-11 -DCMAKE_BUILD_TYPE=RelWithDebInfo .. cmake --build . --config RelWithDebInfo cd ..
6、修改系统的开启最大文件数
按照如下内容修改或创建/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
如果显示524288则说明已生效
7、启动ClickHouse服务器
cd ClickHouse ./build/programs/clickhouse-server --config-file ./programs/server/config.xml
本人安装完后,是没有config.xml文件的,有一个config.xml.S文件,所以就复制了一份并重命名为config.xml
cp ./programs/server/config.xml.S ./programs/server/config.xml