Skip to main content

clickhouse 编译安装

· 2 min read

编译流程

  • github 拉代码
git clone https://github.com/ClickHouse/ClickHouse.git
  • 创建子目录
cd ClickHouse/
mkdir build
cmake ..
  • 编译需要升级到gcc-8 g++8:
 GCC version must be at least 8.  For example, if GCC 8 is available under
gcc-8, g++-8 names, do the following: export CC=gcc-8 CXX=g++-8;

我的操作系统是ubuntu所以

$ sudo  apt-get install gcc-8 g++-8
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8
update-alternatives: using /usr/bin/gcc-8 to provide /usr/bin/gcc (gcc) in auto mode

然后看gcc版本升级到8.3.0

$ gcc -v
Using built-in specs.
...
gcc version 8.3.0 (Ubuntu 8.3.0-6ubuntu1~18.04.1)

  • 删掉cmake相关缓存
$ rm -rf   CMakeCache.txt CMakeFiles

重新跑有这样的错误:

  Submodules are not initialized.  Run

git submodule update --init --recursive

然后初始化git submodule:

$ git submodule update --init --recursive

因为我用的是v2ray + proxychains4,勉强把那些包下下来了 然后继续跑

cmake -DCMAKE_BUILD_TYPE=Debug  -DCMAKE_INSTALL_PREFIX=/home/ubuntu/click  ..

ninja all

然后我发现内存要比较大,而且硬盘要ssd,不然会编译特别慢

使用docker-compse启动

相关参考

  • 第一步创建文件 config.xmlusers.xml
  • 第二步 新建docker-compose.yml
version: '3'
services:
clickhouse-server:
image: yandex/clickhouse-server
container_name: clickhouse-server
hostname: clickhouse-server
ports:
- 8123:8123
expose:
- 9000
- 9009
volumes:
- ./config.xml:/etc/clickhouse-server/config.xml
- ./users.xml:/etc/clickhouse-server/users.xml
- ./data:/var/lib/clickhouse
- ./log/clickhouse-server.log:/var/log/clickhouse-server/clickhouse-server.log
- ./log/clickhouse-server.err.log:/var/log/clickhouse-server/clickhouse-server.err.log
  • 第二步
docker-compose up

使用clickhouse-client 连接

docker run -it --rm --link clickhouse-server:clickhouse-server --net clickhouse_default yandex/clickhouse-client --host clickhouse-server --user seluser --password 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92

相关阅读