ClickHouse 在 CentOS7 下的编译

本贴最后更新于 2094 天前,其中的信息可能已经渤澥桑田

背景

ClickHouse 是目前很热的一款 OLAP 产品。

为了深入了解 ClickHouse,从源码级别来进行从头编译是必须的。

编译 ClickHouse

准备编译环境

准备虚拟机

安装虚拟机 VirtualBox

安装 CentOS7

  1. 下载 CentOS7 镜像

  2. 安装镜像,内存 8G,硬盘 60G.

  3. 选择最小安装

编译

下载最新稳定压缩包(失败)

目前是 54318, https://github.com/yandex/ClickHouse/archive/v1.1.54318-stable.zip

解压安装包

sudo yum install unzip -y
unzip ClickHouse-1.1.54318-stable.zip

clone 稳定包

安装 git

sudo yum install git -y
git clone -b 'v1.1.54318-stable' --recursive https://github.com/yandex/ClickHouse.git

或者

git clone -b stable --recursive https://github.com/yandex/ClickHouse.git
git submodule update --init --recursive

编写时的最新稳定版本为

git clone -b 'v1.1.54318-stable' --recursive https://github.com/yandex/ClickHouse.git

clone 主干包

安装 git

sudo yum install git -y
git clone --recursive https://github.com/yandex/ClickHouse.git

或者

git clone https://github.com/yandex/ClickHouse.git
git submodule update --init --recursive

安装 gcc7

安装 scl 源

sudo yum install centos-release-scl -y

安装 gcc7

sudo yum install devtoolset-7-gcc -y
sudo yum install devtoolset-7-gcc-c++ -y
source /opt/rh/devtoolset-7/enable

确认下版本号为 7.2.1

[abeffect@localhost ~]$ gcc --version
gcc (GCC) 7.2.1 20170829 (Red Hat 7.2.1-1)
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

安装 cmake3

安装 epel 源

sudo yum install epel-release -y

安装 cmake3

sudo yum install cmake3 -y

安装 openssl

sudo yum install openssl-devel -y

cmake 编译

进入目录

cd ClickHouse
mkdir build
cd build/

执行 cmake

cmake3 ..

如果出现了

CMake Error in contrib/librdkafka/src/CMakeLists.txt:
  Imported target "OpenSSL::SSL" includes non-existent path

    "/usr/local/opt/openssl/include"

的异常

再执行一次 cmake

cmake3 ..

就成功了

编译

make

或者想更快的编译

export THREADS=$(grep -c ^processor /proc/cpuinfo)
make -j $THREADS

后记

  1. 编译时,需要目录剩余空间有 20G+
  2. 编译出来的二进制文件有 500M+,但是参考[4]中的文件仅有 65M.

源安装 ClickHouse

Altinity 给出了编译好的 ClickHouse 镜像源,版本也是最新的稳定版,经本人测试,下载安装正常。

EL6

编辑文件 /etc/yum.repos.d/altinity_clickhouse.repo,内容如下

[altinity_clickhouse]
name=altinity_clickhouse
baseurl=https://packagecloud.io/altinity/clickhouse/el/6/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/altinity/clickhouse/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[altinity_clickhouse-source]
name=altinity_clickhouse-source
baseurl=https://packagecloud.io/altinity/clickhouse/el/6/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/altinity/clickhouse/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

安装

sudo yum install clickhouse-server clickhouse-client -y

EL7

编辑文件 /etc/yum.repos.d/altinity_clickhouse.repo,内容如下

[altinity_clickhouse]
name=altinity_clickhouse
baseurl=https://packagecloud.io/altinity/clickhouse/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/altinity/clickhouse/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[altinity_clickhouse-source]
name=altinity_clickhouse-source
baseurl=https://packagecloud.io/altinity/clickhouse/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/altinity/clickhouse/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

安装

sudo yum install clickhouse-server clickhouse-client -y

会发现,依赖的库有:

unixODBC
clickhouse-server-common

后记二

20180723 补充,yandex 官方 clickhouse 源 http://repo.yandex.ru/clickhouse/rpm/stable/x86_64/

参考

  1. red soft ru build packages: 好久不更新了
  2. How to build ClickHouse on Linux: 官方文档
  3. Altinity clickhouse-rpm: v 目录下有完整的编译脚本
  4. Altinity clickhouse-rpm-install: 其实不用自己编译,直接使用这里的源安装即可

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...