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
英文地址,請注明出處:http://en.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;他的每個結點增加一個…