ClickHouse系列教程: ClickHouse系列教程


根据官方文档的编译教程:How to Build ClickHouse on Linux - ClickHouse Documentation
我们需要先安装软件,建议使用Ubuntu/Debian系统:

apt-get install libicu-dev libreadline-dev gperf git cmake ninja-build
apt install gcc-8 g++-8 #编译需要gcc版本大于7或者clang版本大于6
apt install clang-6 clang++-6

然后 clone source code:

git clone --recursive --branch stable https://github.com/yandex/ClickHouse.git
cd ClickHouse

如果上一步的依赖模块没有全部 clone 下来,运行命令:

git submodule update --init --recursive

普通的编译安装运行如下命令:

mkdir build && cd build
cmake .. -DCMAKE_CXX_COMPILER=`which g++` -DCMAKE_C_COMPILER=`which gcc`
ninja

这里强调一下,cmake不像make一样可以clean,你需要手动删除文件,然后重新编译
如果为了研究,推荐使用debug模式:

mkdir Debug && cd Debug
cmake .. -DCMAKE_CXX_COMPILER=`which g++-8` -DCMAKE_C_COMPILER=`which gcc-8`  -DCMAKE_BUILD_TYPE=Debug
ninja -j 1

你也可以使用clang进行编译, clang版本至少要6.0:

mkdir Debug && cd Debug
cmake .. -DCMAKE_CXX_COMPILER=`which clang++` -DCMAKE_C_COMPILER=`which clang`  -DCMAKE_BUILD_TYPE=Debug
ninja -j 1

在我的机器上消耗3G内存。
注意:4线程同时编译需要至少12G内存,推荐1线程或双线程
编译完成后可以运行了:

sudo ./dbms/programs/clickhouse-server --config=/etc/clickhouse-server/config.xml

参考文章:Clickhouse源码研究(一)
ClickHouse 源码阅读经验分享

ClickHouse系列教程六:源码分析之Debug编译运行相关推荐

  1. SequoiaDB 系列之六 :源码分析之coord节点

    好久不见. 在上一篇SequoiaDB 系列之五   :源码分析之main函数,有讲述进程开始运行时,会根据自身的角色,来初始化不同的CB(控制块,control block). 在之前的一篇Sequ ...

  2. LIRE教程之源码分析 | LIRE Tutorial of Analysis of the Source Code

    LIRE教程之源码分析 |LIRE Tutorial of Analysis of the Source Code 最近在做地理图像识别和检索的研究,发现了一个很好用的框架LIRE,遂研究了一通.网上 ...

  3. paho架构_MQTT系列最终章-Paho源码分析(三)-心跳与重连机制

    写在前面 通过之前MQTT系列-Eclipse.Paho源码分析(二)-消息的发送与接收的介绍,相信仔细阅读过的小伙伴已经对Eclipse.Paho内部发送和订阅消息的流程有了一个较为清晰的认识,今天 ...

  4. 【投屏】Scrcpy源码分析一(编译篇)

    Scrcpy源码分析系列 [投屏]Scrcpy源码分析一(编译篇) [投屏]Scrcpy源码分析二(Client篇-连接阶段) [投屏]Scrcpy源码分析三(Client篇-投屏阶段) [投屏]Sc ...

  5. v58.03 鸿蒙内核源码分析(环境脚本) | 编译鸿蒙原来很简单 | 百篇博客分析HarmonyOS源码

    颜渊问仁.子曰:"克己复礼为仁.一日克己复礼,天下归仁焉.为仁由己,而由人乎哉?"颜渊曰:"请问其目."子曰:"非礼勿视,非礼勿听,非礼勿言,非礼勿动 ...

  6. 【源码分析】storm拓扑运行全流程源码分析

    [源码分析]storm拓扑运行全流程源码分析 @(STORM)[storm] 源码分析storm拓扑运行全流程源码分析 一拓扑提交流程 一stormpy 1storm jar 2def jar 3ex ...

  7. janusgraph源码分析1-下载编译启动 1

    date: 2018-04-26 title: "janusgraph源码分析1-下载编译启动" author: "邓子明" tags: - 源码 - janu ...

  8. java tomcat源码_详解Tomcat系列(一)-从源码分析Tomcat的启动

    在整个Tomcat系列文章讲解之前, 我想说的是虽然整个Tomcat体系比较复杂, 但是Tomcat中的代码并不难读, 只要认真花点功夫, 一定能啃下来. 由于篇幅的原因, 很难把Tomcat所有的知 ...

  9. SequoiaDB 系列之五 :源码分析之main函数

    好久好久没有写博客了,因为一直要做各种事,工作上的,生活上的,这一下就是半年. 时光如梭. 这两天回头看了看写的博客,感觉都是贻笑大方. 但是还是想坚持把SequoiaDB系列写完. 初步的打算已经确 ...

最新文章

  1. mongodb导入hive
  2. 一道Python面试题,据说大部分人都中招了,纷纷开始怀疑自己
  3. OpenSSH升级安装步骤(redhat)
  4. git中Please enter a commit message to explain why this merge is necessary.
  5. java计算器程序加编辑帮助_这里有个JAVA计算器的小程序,希望帮忙加下注释,少许修改...
  6. TensorFlow实战-AlexNet
  7. libdvbpsi源码分析(三)PSI decocder详细分析
  8. dependencies 和 devDependencies 区别
  9. QT开发及实例学习之六控件
  10. php计划任务方法(后台运行无刷新)
  11. php的数组操作,PHP的数组操作
  12. bzoj 4318: OSU!(概率DP)
  13. 如何在linux centos下安装git(转)
  14. Github emoji 表情包大全
  15. 制作网页中弹出对话框的制作
  16. azure mysql on vnet_管理 VNet 终结点 - Azure CLI - Azure Database for MySQL | Microsoft Docs
  17. 安农大计算机专业录取分数线,安徽农业大学+录取分数线
  18. IDM+百度网盘提速下载复活版
  19. Threejs渲染obj+mtl模型源码,3D工厂模型
  20. 关于使用梆梆加固后,适配android5.0系统与64位机型的问题

热门文章

  1. RDKit | 生物大分子的HELM表示法
  2. 那些妖术——树的遍历
  3. 怎么用linux设计一个小程序,“Linux”小程序发布一个月后,我们发现了什么
  4. unix mysql命令大全_mySql的一些常用命令
  5. 综述 | 现在是蛋白质组学数据共享和再分析的黄金时间?
  6. matlab cam orbit,如何在MATLAB中平滑旋转3D绘图?
  7. R语言使用caret包的preProcess函数进行数据预处理:对所有的数据列进行YeoJohnson变换(将非正态分布数据列转换为正态分布数据、可以处理负数)、设置参数为YeoJohnson
  8. pandas基于dataframe字符串数据列包含(contains)特定字符串来筛选dataframe中的数据行(rows where values contain substring)
  9. R语言ggplot2可视化箱图、配置抖动数据点(jitter points)避免数据点互相覆盖、并使用线条(line)连接两个箱图中不同分组成对的数据点(jitter on Boxplots)
  10. R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(改变分组次序)实战