ARM下编译Clickhouse-v20.3.19.4-lts

 

1. 编译前准备工作

1.1 编译环境版本

Linux WEB-002 4.4.131-20190726.kylin.server-generic #kylin SMP Tue Jul 30 16:44:09 CST 2019 aarch64 aarch64 aarch64 GNU/Linux

Clickhouse v20.3.19.4-lts

cmake-3.18.4

LLVM 10.0.1 (Clang 10.0.1)

gcc-9.2.0

gmp-6.1.0

isl-0.18

mpfr-3.1.4

mpc-1.0.3

 

1.2 下载clickhouse源码和依赖

git clone https://github.com/ClickHouse/ClickHouse.git

cd ClickHouse

git checkout v20.3.19.4-lts

git submodule update --init --recursive

 

最新版lts版为20.8.6.6

如果你是稳定性优先的用户,可以选择 LTS 版本;

如果你是新特性优先的用户,使用普通的 stable 版本即可。

 

2. 编译安装cmake-3.18.4

1)安装依赖

sudo apt-get install libssl-dev qt4-qmake

 

2) 解压cmake

tar -xvf cmake-3.18.4.tar.gz

 

3) 编译cmake

cd cmake-3.18.4
chmod 777 ./bootstrap
./bootstrap

 

4) 安装cmake

make -j64 && make install    //开64线程编译,取cpu线程数
cmake --version

3. 编译安装GCC编译器

3.1 安装依赖和解压gcc

apt-get install bzip2 m4
tar xvf gcc-9.2.0.tar.xz
cd gcc-9.2.0
# gcc编译依赖gmp、mpfr、mpc、isl四个库,移动gcc依赖包到gcc解压目录
mv gmp-6.1.0.tar.bz2 isl-0.18.tar.bz2 mpfr-3.1.4.tar.bz2 mpc-1.0.3.tar.gz gcc-9.2.0/

 

3.2 安装gmp

tar xf gmp-6.1.0.tar.bz2
cd gmp-6.1.0
./configure
make -j 64 && make install

 

3.4 安装isl

cd ..
tar xf isl-0.18.tar.bz2
cd isl-0.18
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
echo "export LD_LIBRARY_PATH=/usr/local/lib:\$LD_LIBRARY_PATH" >> /etc/profile
./configure
make -j 64 && make install

 

3.5 安装mpfr

 

cd ..
tar xf mpfr-3.1.4.tar.bz2
cd mpfr-3.1.4
./configure
make -j 64 && make install

3.6 安装mpc

cd ..
tar xf mpc-1.0.3.tar.gz
cd mpc-1.0.3
./configure
make -j 64 && make install

3.7 GCC编译配置

cd ..
./configure --enable-languages=c,c++ --disable-multilib  #disable-multilib表示编译64位
make -j 64  # -j 参数指定并行数,CPU核够用的话会快点,这一步要很久
make install    

ln -sf /usr/local/bin/gcc /usr/local/bin/gcc-9
ln -sf /usr/local/bin/g++ /usr/local/bin/g++-9
ln -sf /usr/local/bin/gcc /usr/local/bin/cc
ln -sf /usr/local/bin/g++ /usr/local/bin/c++

echo '/usr/local/lib64' | tee /etc/ld.so.conf.d/10_local-lib64.conf
ldconfig

cp /usr/local/lib64/libstdc++.so.6.0.27  /usr/lib/aarch64-linux-gnu/
cd /usr/lib/aarch64-linux-gnu/
ll libstdc++.so.6
lrwxrwxrwx 1 root root 19 11月 11  2019 libstdc++.so.6 -> libstdc++.so.6.0.21
ln -sf libstdc++.so.6.0.27 libstdc++.so.6
hash gcc g++ #这一步改变版本,这样就能使用刚刚安装的GCC版本了
gcc --version   #即可看到最新版本
g++ --version   #即可看到最新版本

 4. 编译安装clang编译器

1) 解压clang包

tar -xvf llvm-project-llvmorg-10.0.1.tar.gz
cd llvm-project-llvmorg-10.0.1

 

2) 编译llvm

cd llvm
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..

 

3) 安装llvm

make -j64 && make install

4) 编译clang-10(注意:编译clang-10需要指定llvm的路径)

cd clang
mkdir build && cd build
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release --enable-optimized --enable-targets=host-only  ../../llvm -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi;compiler-rt;clang-tools-extra;openmp;lldb;lld"

 

5) 安装clang-10

make -j64 && make install

 

6)查看版本

llvm-config --version
clang --version

5. 编译安装Clickhouse

5.1 采用clang编译

1) AArch64架构需要使用Clang编译器,X86架构可直接使用GCC编译器

 

cd ClickHouse
export CC=clang; export CXX=clang++; rm -rf build; mkdir -p build && cd build;cmake .. -DENABLE_TCMALLOC=OFF -DENABLE_JEMALLOC=OFF -DCMAKE_INSTALL_PREFIX=/opt/clickhouse

 

 2) 执行编译

make -j64

3) 执行安装

make install

6. 测试验证

编译成功完成后会输出到 -DCMAKE_INSTALL_PREFIX 指定的目录/opt/clickhouse

 

6.1 配置环境变量

vim /etc/profile
# 添加如下两行
export PATH=/opt/clickhouse/bin:$PATH
export LD_LIBRARY_PATH=/opt/clickhouse/lib:$LD_LIBRARY_PATH
source /etc/profile

 

6.2 准备数据库配置文件

 

mkdir /opt/clickhouse/config
# 将config.xml 和 users.xml 文件从源码目录复制过来
cp ClickHouse/programs/server/config.xml /opt/clickhouse/config/
cp ClickHouse/programs/server/users.xml /opt/clickhouse/config/

6.3 启动

clickhouse-server --config-file=/opt/clickhouse/config/config.xml

 6.4 后台启动

后台启动命令:

clickhouse-server --daemon --config-file=/opt/clickhouse/config/config.xml

 

查看状态:

cat /var/lib/clickhouse/status

 

客户端登陆:

clickhouse-client -m

6.5 一些默认目录

配置文件路径:

/opt/clickhouse/config/config.xml /opt/clickhouse/config/users.xml

日志文件路径:

/var/log/clickhouse-server/

表信息路径、元数据存储目录:

/var/lib/clickhouse/metadata/

表数据路径:

/var/lib/clickhouse/data/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hblicy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值