前情概要

由于工作需要用到clickhouse, 这里暂不介绍概念,应用场景,谷歌,百度一大把. 将安装过程踩下的坑记录下来备用

ClickHouse源码 git clone安装(直接下载源码包安装失败)

源码安装一定要用git克隆下来,不要下载github上已经打好的包,因为有些依赖的子模块时时刻刻在更新.要不然编译各种报错. 一定要克隆,一定要克隆,一定要克隆

  1. github上找到一个最新的稳定版本,一般以 -stable结尾的

  2. 创建一个clickhouse目录如 mkdir /data/clickhouse-19.7.3.9-stable,这里我带上版本号,方便以后好升级

  3. clone

    • cd /data/clickhouse-19.7.3.9-stable

    • git clone -b 'v19.7.3.9-stable' --recursive https://github.com/yandex/ClickHouse.git

      这里递归下载依赖可能需要一点时间, 200kb/s的速度,我这里用了将近半个小时

  4. 升级子模块

    cd /data/clickhouse-19.7.3.9-stable/ClickHouse
    git submodule update --init --recursive
  5. 创建编译目录

    cd /data/clickhouse-19.7.3.9-stable/ClickHouse

    mkdir build

    cd build

    cmake3 .. (这一步生成可执行编译的makefile文件,如果系统没有cmake3 执行: sudo yum -y install cmake3 )

    这一步会报缺少很多依赖错误,报什么依赖错误,安装什么依赖即可,如果嫌麻烦,可以一次性安装所有依赖,按官方文档来:https://clickhouse.yandex/docs/en/development/build/,注意把debian系列的 apt-get命令换成 yum

    ##安裝gcc,g++ 7以上的版本,clickhouse 用了很多 C++ 11的新特性
    sudo yum -y install devtoolset--gcc
    sudo yum -y install devtoolset--gcc-c++
    source /opt/rh/devtoolset-/enable
    #安装完确认一下版本号
    gcc --version

#安装jemalloc (clickhouse 没有用glibc的内存分配器)
sudo yum -y install jemalloc-devel
#安装openssl
sudo yum -y install openssl-devel
#安装epel
sudo yum -y install epel-release

我这里可能系统自带了很多已经装好的软件,如果在cmake3后还是报很多依赖缺失,按报错一次安装依赖即可.

装完依赖后要再次回去清掉build里产生的缓存,可以直接删除 ,删除完重新执行cmake3指向clickhouse根目录.

cd build
rm -rf *
cmake3 ..

这步最后会生成日志:

-- /data/clickhouse-19.7.3.9-stable/ClickHouse/utils: Have  megabytes of memory. Limiting concurrent linkers jobs to  and compiler jobs to OFF
-- /data/clickhouse-19.7.3.9-stable/ClickHouse/dbms: Have megabytes of memory. Limiting concurrent linkers jobs to and compiler jobs to
-- Will build ClickHouse 19.7.3.1 revision
-- Using internal=OFF compiler=: headers=/usr/share/clickhouse/headers/19.7.3.1 : /usr/local/bin/clickhouse-clang -pipe -msse4. -msse4. -mpopcnt -fno-omit-frame-pointer -Wall -Wnon-virtual-dtor -Wextra -Werror -O2 -g -DNDEBUG -O3 -std=c++1z -x c++ -march=native -fPIC -fvisibility=hidden -fno-implement-inlines -nostdinc -nostdinc++ -Wno-unused-command-line-argument -Bprefix=/usr/share/clickhouse -isysroot=/usr/share/clickhouse/headers/19.7.3.1; clickhouse-lld
-- Target check already exists
-- Configuring done
-- Generating done
-- Build files have been written to: /data/clickhouse-19.7.3.9-stable/ClickHouse/build

说明可执行编译的文件已经生成到build目录,在接下来的那一步去执行编译即可.

  6. 编译

  cd /data/clickhouse-19.7.3.9-stable/ClickHouse/build

  make

  大约在7%的时候会报错:

查了一下官网的issue,有同样的小伙儿碰到这个问题:

https://github.com/yandex/ClickHouse/issues/5043

按推荐的方式试了一下:

这里我暂时不需要指定编译后的文件的目录,就没有指定编译目录,直接让其生成在build目录

cd /data/clickhouse-19.7.3.9-stable/ClickHouse/build

rm -rf * (这里清理已经生成的文件)

## 再次执行cmake3带上参数如下, 大约10分钟左右生成编译文件成功

cmake3 .. -DGLIBC_COMPATIBILITY=OFF -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo

## 成功后,再次编译

make

这个过程比较漫长 ,个人从 16:45开始编译,直到 20:35才编译完,成功编译的结果:

最终编译成功的可执行的程序在

build/dbms/programs下,如 clickhouse-server

7. 启动

    直接 进入build/dbms/programs执行:  

cd build/dbms/programs
./clickhouse-server

报错

显然找不到配置文件,我们可以按惯例查看一下help,还好它做了help

./clickhouse-server --help

嗯,good .这个help做的还不错,很好懂. 这个配置文件上哪儿去找呢.看官方文档: https://clickhouse.yandex/docs/en/getting_started/ 官方提供中文版文档,但是还没翻译完,只有一半是中文的

OK ,去我们拉下来的源代码目录 src/dbms/programs/server/config.xml 拷一份放到一个目录,改一下配置,启动, 可以愉快的玩耍了.具体的配置慢慢参考官网文档研究..

clickhouse源码Redhat系列机单机版安装踩坑笔记的更多相关文章

  1. 从源码看Spring Security之采坑笔记(Spring Boot篇)

    一:唠嗑 鼓捣了两天的Spring Security,踩了不少坑.如果你在学Spring Security,恰好又是使用的Spring Boot,那么给我点个赞吧!这篇博客将会让你了解Spring S ...

  2. 从源码解析Electron的安装为什么这么慢

    前言 Electron作为一款跨平台的桌面应用端解决方案已经风靡全球.作为开发者,我们几乎不用关心与操作系统的交互,直接通过Web前端技术与Electron提供的API就可以完成桌面应用端的开发. 然 ...

  3. 从源码(编译)安装golang 二

    h1 { margin-top: 0.6cm; margin-bottom: 0.58cm; direction: ltr; color: #000000; line-height: 200%; te ...

  4. ClickHouse源码笔记3:函数调用的向量化实现

    分享一下笔者研读ClickHouse源码时分析函数调用的实现,重点在于分析Clickhouse查询层实现的接口,以及Clickhouse是如何利用这些接口更好的实现向量化的.本文的源码分析基于Clic ...

  5. ClickHouse源码笔记4:FilterBlockInputStream, 探寻where,having的实现

    书接上文,本篇继续分享ClickHouse源码中一个重要的流,FilterBlockInputStream的实现,重点在于分析Clickhouse是如何在执行引擎实现向量化的Filter操作符,而利用 ...

  6. LNMP架构的源码编译以及yum安装

    LNMP架构的源码编译以及yum安装 目录 LNMP架构的源码编译以及yum安装 一.LNMP架构的编译安装 1. 安装nginx服务 (1)关闭防火墙 (2)安装依赖包 (3)创建运行用户 (4)编 ...

  7. Android Studio安装踩坑

    title: Android Studio安装踩坑 date: 2018-09-07 19:31:32 updated: tags: [Android,Android Studio,坑] descri ...

  8. CAS5.3服务器搭建与客户端整合SpringBoot以及踩坑笔记

    CAS5.3服务器搭建与客户端整合SpringBoot以及踩坑笔记 cas服务器的搭建 导出证书(1和2步骤是找了课程,随便写了一下存记录,不过对于自己测试不投入使用应该不影响) C:\Users\D ...

  9. EntityFramework CodeFirst SQLServer转Oracle踩坑笔记

    接着在Oracle中使用Entity Framework 6 CodeFirst这篇博文,正在将项目从SQLServer 2012转至Oracle 11g,目前为止遇到的问题在此记录下. SQL Se ...

随机推荐

  1. WEB攻击之 CSRF 攻击及防御策略

    介绍 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法. 释义: 跨站请求攻击,简单地说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并运行一些操作(如 ...

  2. Chapter2 二分与三分

    T1 给一个N个数的序列,分成M段,每段最大值最小 sol:二分最大值,贪心Check T2 平面上n个点,每个点每s会向周围扩散一个单位长度,两个点联通当且仅当扩散有交点,问什么时候这n个点联通 s ...

  3. 【LeetCode】042 Trapping Rain Water

    题目: Given n non-negative integers representing an elevation map where the width of each bar is 1, co ...

  4. huipengly的2018年度总结

    一.技术 1.入门C++ 今年看完了一本很厚很厚的书——<c++ primer 5th>.从头到尾,基本上每一个课后练习题都完成了.入门了C++这个大坑,也初步了解了面向对象这个程序抽象方 ...

  5. [hdu3853]LOOPS(概率dp)

    题意:迷宫是一个R*C的布局,每个格子中给出停留在原地,往右走一个,往下走一格的概率,起点在(1,1),终点在(R,C),每走一格消耗两点能量,求出最后所需要的能量期望. 解题关键:概率dp反向求期望 ...

  6. Auto Layout Guide----(一)-----Understanding Auto Layout

    Understanding Auto Layout 理解自动布局 Auto Layout dynamically calculates the size and position of all the ...

  7. eclipse里的Maven插件安装

    插件安装 打开Eclipse的Help->Install New Software,如下图所示: 2. 选择“Add..”按钮,又会弹出如下对话框: 这个对话框就是用于添加一个插件地址的.在“N ...

  8. SVN needs-lock 设置强制只读属性【转】

    https://www.jianshu.com/p/5942ab19620b 设置后向svn服务器添加文件时,会自动带上svn:needs-lock属性,默认是只读的要签出才能修改,以避免不必要的编辑 ...

  9. 10. windows下原来可以这样隐藏webshell

    1.利用保留字隐藏 windows系统有些保留文件夹名,windows系统不允许用这些名字命名文件夹,如 aux|prn|con|nul|com1|com2|com3|com4|com5|com6|c ...

  10. 【转】ssm整合

    http://m.blog.csdn.net/article/details?id=44455235 SSM框架——详细整合教程(Spring+SpringMVC+MyBatis) 发表于2015/3 ...