ClickHouse是一款列式分布式數(shù)據(jù)庫,目前在CentOS上都是以rpm來安裝的,因?yàn)槲覀兛赡苄枰远x一些功能昧谊,并做一些自定義的部署規(guī)范需求,比較適合自己進(jìn)行打包部署酗捌。
環(huán)境要求
- CentOS 7
- gcc-7+呢诬、g++-7+
- cmake3、ccache
- ClickHouse 18+
首先安裝gcc
這里采用的是從源碼包安裝的方式意敛,從http://mirrors.ustc.edu.cn/gnu/gcc/gcc-7.3.0下載對應(yīng)的tar.gz包(gcc-7.3.0.tar.gz)馅巷。
把下載的包gcc-7.3.0.tar.gz放到服務(wù)器上,我是放置在~/gcc目錄下草姻。準(zhǔn)備好了源碼包,接下來是安裝下面的三個(gè)依賴稍刀,如果沒有安裝撩独,在執(zhí)行configure的時(shí)候會提示安裝敞曹,按照提示安裝即可。
- sudo yum install gmp-devel
- sudo yum install mpfr-devel
- sudo yum install libmpc-devel
然后開始編譯
cd ~/gcc
tar zxf gcc-7.3.0.tar.gz
cd gcc-7.3.0
./configure --prefix=~/gcc7 --disable-multilib # 配置將安裝到目錄~/gcc7,第二個(gè)參數(shù)是關(guān)閉32位指令综膀,僅使用64位
make -j4
make install
經(jīng)過一段漫長的編譯和安裝澳迫,gcc已經(jīng)安裝在目錄~/gcc7了,執(zhí)行如下的命令查看版本:
~/gcc7/bin/gcc -v
一般為了方便使用剧劝,可以建立軟連接到/usr/bin,這樣可以直接在終端里面使用gcc-7和g++-7了橄登。
sudo ln -s ~/gcc7/bin/gcc /usr/bin/gcc-7
sudo ln -s ~/gcc7/bin/g++ /usr/bin/g++-7
安裝cmake3和ccache
編譯ClickHouse需要cmake3,直接sudo yum install cmake3和sudo yum install ccache即可
編譯ClickHouse
首先clone代碼到用戶目錄(~)下,并更新子模塊讥此,拉取子模塊的代碼拢锹,主要是一些依賴的庫。
git clone https://github.com/yandex/ClickHouse.git
cd ClickHouse
git submodule update --init --recursive
配置編譯器為gcc7:
export CC=gcc-7 CXX=g++-7
好了可以開始編譯了:
cd ~/ClickHouse
mkdir build
cmake3 ..
make
經(jīng)過一段漫長的時(shí)間編譯萄喳,最后編譯好的包就在build/dbms/programs下面卒稳,有一個(gè)clickhouse的可執(zhí)行文件,所有的功能都使用這個(gè)包他巨,一般是通過使用不同的名字建立軟連接到這個(gè)文件(比如clickhouse-client和clickhouse-server充坑,代碼內(nèi)部根據(jù)名字來確定使用的功能)來使用不同的功能。