CentOS 7 编译ClickHouse 24.8完整指南

前言

在CentOS 7上编译ClickHouse 24.8可能会遇到一些挑战,主要是因为CentOS 7的默认软件版本较旧。本文将详细介绍从零开始构建ClickHouse 24.8的完整过程,包括依赖安装和环境配置。

准备工作

首先确保系统已更新到最新版本:

yum update -y

1. 安装CMake

ClickHouse需要CMake 3.1.7以上版本,我们安装3.25.3:

wget --no-check-certificate https://cmake.org/files/v3.25/cmake-3.25.3-linux-x86_64.sh
mkdir /usr/local/cmake && ./cmake-3.25.3-linux-x86_64.sh --prefix=/usr/local/cmake --skip-license
ln -s /usr/local/cmake/bin/cmake /usr/local/bin/cmake
ln -s /usr/local/cmake/bin/cpack /usr/local/bin/cpack
ln -s /usr/local/cmake/bin/ctest /usr/local/bin/ctest

2. 安装GCC 10

CentOS 7默认GCC 4.8太旧,需要升级到GCC 10:

# 配置阿里云镜像源
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo# 配置SCL源
yum install -y centos-release-scl
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-SCLo-scl.repo
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
sed -i 's|baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.aliyun.com/centos|g' /etc/yum.repos.d/CentOS-SCLo-scl*.repoyum clean all && yum makecache
yum install -y centos-release-scl
yum install -y devtoolset-10-gcc*# 启用GCC 10
scl --list
scl enable devtoolset-10 bashecho "source /opt/rh/devtoolset-10/enable" >> ~/.bashrc
source ~/.bashrc
gcc --version

3. 安装Python 3

wget --no-check-certificate https://www.python.org/ftp/python/3.8.19/Python-3.8.19.tgz
tar xvf Python-3.8.19.tgz
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-develcd Python-3.8.19
./configure --enable-optimizations --prefix=/usr/local/python3
make -j$(nproc)
make installln -s /usr/local/python3/bin/python3.8 /usr/bin/python3

4. 安装LLVM

使用LLVM来编译ClickHouse,安装18.1.8版本:

git clone --depth=1 --branch=llvmorg-18.1.8 https://github.com/llvm/llvm-project.git
cd llvm-project
mkdir build && cd buildcmake -G "Unix Makefiles" \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_PROJECTS="clang;lld" \
-DLLVM_TARGETS_TO_BUILD='X86' \
-DCMAKE_INSTALL_PREFIX=/usr/local/llvm-18.1.8 \
../llvm-project/llvmmake -j$(nproc)
make installecho 'export PATH=/usr/local/llvm-18.1.8/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/llvm-18.1.8/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrcln -s /usr/local/llvm-18.1.8/bin/clang /usr/local/bin/clang
ln -s /usr/local/llvm-18.1.8/bin/clang++ /usr/local/bin/clang++

5. 安装NASM和YASM

# 安装NASM
wget --no-check-certificate http://www.nasm.us/pub/nasm/releasebuilds/2.16.03/nasm-2.16.03.tar.gz
tar zxvf nasm-2.16.03.tar.gz && cd nasm-2.16.03
./configure --prefix=/usr/local/nasm
make && make install
ln -s /usr/local/nasm/bin/nasm /usr/local/bin/nasm# 安装YASM
wget --no-check-certificate http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar -zxvf yasm-1.3.0.tar.gz && cd yasm-1.3.0
./configure --prefix=/usr/local/yasm
make && make install
ln -s /usr/local/yasm/bin/yasm /usr/local/bin/yasm

6. 编译ClickHouse

git clone --branch=v24.8.14.39-lts --recurse-submodules https://github.com/ClickHouse/ClickHouse
cd ClickHouse
git checkout -b v24.8.14.39-lts origin/v24.8.14.39-lts
git submodule update --init --recursive# 解决可能出现的mariadb-connector-c问题
rm -rf contrib/mariadb-connector-c
git submodule update --init --force contrib/mariadb-connector-c# 设置编译环境
export CC=/usr/local/bin/clang
export CXX=/usr/local/bin/clang++
yum install -y ccache# 编译
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_C_COMPILER=$(which clang) \
-DCMAKE_CXX_COMPILER=$(which clang++) \
-DENABLE_TESTS=OFF \
-G Ninja ..ninja

7. 运行ClickHouse

编译完成后,可以运行ClickHouse服务器:

./clickhouse-server --config-file=/path/to/config.xml --daemon

常见问题解决

  1. mariadb-connector-c配置错误

    rm -rf contrib/mariadb-connector-c
    git submodule update --init --force contrib/mariadb-connector-c

  2. 内存不足:编译过程需要大量内存,建议至少有16GB内存或设置交换空间。

  3. 依赖缺失:如果编译过程中提示缺少依赖,可以使用yum provides查找并安装相应包。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/86665.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/86665.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Protocol Buffers (Protobuf) 全面解析

一、核心概念解析 1. 什么是数据序列化? #mermaid-svg-HZKw9iRlpQIRFiO3 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-HZKw9iRlpQIRFiO3 .error-icon{fill:#552222;}#mermaid-svg-HZKw9iRlpQIRFiO3 .…

高斯混合模型GMMK均值(十三-1)——K均值是高斯混合模型的特例

EM算法与K均值算法的关系 K均值可以看成是高斯混合模型的特例。 对K均值算法与EM算法进行比较后,可以发现它们之间有很大的相似性。K均值算法将数据点硬(hard)分配到聚类中,每个数据点唯一地与一个聚类相关联,而EM算法…

StarRocks 向量索引如何让大模型“记性更好”?

随着 ChatGPT、DeepSeek 等大语言模型的普及,我们已经能够与 AI 进行流畅的对话。然而,即使是最先进的大模型也面临着“记忆困境”,具体表现模型只能记住训练时接触的知识,且这些知识在使用时很可能会过期。实际应用或在处理特定领…

UniApp Vue3 模式下实现页面跳转的全面指南

1. 引言 1.1 UniApp 与 Vue3 的结合优势 UniApp 是一个使用 Vue.js 开发所有前端应用的框架,支持编译到 iOS、Android、H5、以及各种小程序平台。Vue3 提供了更高效的响应式系统和 Composition API,使开发体验更加现代化和灵活。 1.2 页面跳转在应用开发中的重要性 页面跳…

Solidity学习 - ABI 应用二进制接口

文章目录 一、ABI 基础概念1. ABI 与 API 的区别2. ABI 的核心作用 二、ABI 接口描述1. 编译后的产物2. ABI JSON 格式示例3. ABI JSON 关键字段说明 三、ABI 编码1. 编码示例2. 编码数据的组成3. Solidity 中的编码函数 四、ABI 解码1. 解码的基本概念2. 事件日志的解码 五、A…

星际争霸数据集指南

星际争霸作为检验AI效果的一个重要“模式生物”, 是验证AI技术的重要平台‌,尤其在 深度学习 和 强化学习领域。该游戏因其复杂的游戏机制和实时决策要求,为AI研究提供了丰富的测试环境和挑战。 本博文是记录自己曾经研究星际争霸AI时对于数据部分的一点…

VUE组件与组件之间的传参

每次启动vue2项目的时候在 vue.config.js中配置: const { defineConfig } require(vue/cli-service) module.exports defineConfig({transpileDependencies: true,//关闭语法严格检验lintOnSave:false})1:在 src 下 创建 utils 文件夹 然后创建 Bas…

8年java开发从零学习人工智能(深度学习)--pp飞桨(百度自研开源框架)

1.明确概念:人工智能>机器学习>深度学习,三者的关系是包含关系,如图所示: 人工智能(AI),很宽泛的概念,是研发用于模拟,延展和扩展人的智能的理论,方法&…

ci | cd

ci | cd 相当于开发人员和运维人员共同完成的东西 ci:Jenkins cd:k8s ci : 持续集成 开发人员写出的代码提交到共享仓库 比如说Git 自动触发代码检查 测试 好处: 很快的发现bug 代码不用堆积 cd: 持续交付:代码测试没问题后 自动打包…

深入理解C#委托操作:添加、移除与调用全解析

关键词:委托不可变性 多播委托 调用列表管理 ⚙️ 一、委托的核心特性:不可变性 看似“添加”,实为新建 使用 为委托“添加”方法时(如 delVar SCl.m3;): 系统创建全新委托对象新委托的调用列表 原…

Spring Cloud:微服务架构的基石与实践指南

一、Spring Cloud 核心组件 (一)Spring Cloud Netflix Spring Cloud Netflix 是 Spring Cloud 的核心模块之一,它集成了 Netflix 的多个开源组件,提供了微服务架构中常见的功能,如服务注册与发现、配置中心、API 网关…

【VPX3U】国产嵌入式平台:RK3588J×JH930硬件架构与红外应用方案

随着对边缘计算与多媒体处理需求的提升,国产异构平台成为关键发展方向。最近有一个项目需求,提出了一款基于瑞芯微 RK3588J 处理器与景嘉微GPU 的 VPX3U 规格嵌入式主板的设计想法旨在融合高性能异构计算与丰富的视频、网络和存储接口,适用于…

秩序密码-用群论分析魔方的阶

三阶魔方的物理基础是由一个三维十字轴连接的 6 个中心块,这 6 个中心块决定了魔方的 6 种颜色朝向,构成不动的坐标系统,此外还有两类活动块,分别是8个角块,12个棱块。 魔方的每一层转动(如 R: 右层顺时针…

Python驱动自动驾驶的“多眼”——打造高效传感器融合框架的实战思考

Python驱动自动驾驶的“多眼”——打造高效传感器融合框架的实战思考 最近,自动驾驶行业火得不行,背后支撑它的技术,远不止车载摄像头那么简单。真正让车“看懂”世界的,是多种传感器数据的“融合”,包括雷达、激光雷达(LiDAR)、摄像头、惯性测量单元(IMU)等等。 而如…

机器学习-- 聚类

什么是聚类? Clustering 可以简单地说,对有标注的数据分类,就是逻辑回归(属于有监督分类),对无标注的数据分类,就是聚类(属于无监督分类) 聚类是一种无监督学习技术&am…

【Yonghong 企业日常问题08 】永洪BI的Apache Tomcat版本升级指南

文章目录 前言操作步骤登录验证 前言 某公司业务永洪BI系统使用tomcat 9.0.97版本,接到总公司漏洞扫描整改要求需要将tomcat版本升级到9.0.97以上。 目标:tomcat 9.0.97》 9.0.98 1、下载tomcat所需要的版本 地址:https://tomcat.apache.org/download-…

BigFoot RaidSlackCheck11.109.zip lua

BigFoot RaidSlackCheck11.109.zip lua 合剂buff检查插件 把lua脚本拷贝到游戏插件目录下: D:\Battle.net\World of Warcraft\_classic_\Interface\AddOns 命令 /rsc 下载地址: https://download.csdn.net/download/spencer_tseng/91181827

深入解析前端 Meta 标签:HTML 的隐形守护者与功能大师

在构建现代网页时&#xff0c;我们常常关注炫目的视觉效果、复杂的交互逻辑或强大的框架&#xff0c;却容易忽略那些深藏于 <head> 之中、看似不起眼的 <meta> 标签。这些标签如同网页的隐形守护者&#xff0c;无声地承担着定义文档元数据、指导浏览器行为、优化搜…

青少年编程与数学 01-012 通用应用软件简介 11 应用商店

青少年编程与数学 01-012 通用应用软件简介 11 应用商店 一、什么是应用商店&#xff08;一&#xff09;应用商店的基本定义&#xff08;二&#xff09;应用商店的工作原理&#xff08;三&#xff09;应用商店的类型 二、应用商店的重要意义&#xff08;一&#xff09;为用户提…

《红黑树实现》

引言&#xff1a; 上次我们学习了比二叉搜索树更高效的平衡二叉搜索树&#xff08;AVL树&#xff09;&#xff0c;这次我们要学习的是另外一种对二叉搜索树的优化后的红黑树。 一&#xff1a;红黑树概念&#xff1a; 红黑树是一棵二叉搜索树&#xff0c;他的每个结点增加一个…