第4章:ClickHouse安装与基础配置

好,咱们正式开始动手了。这一章我带你走一遍ClickHouse的安装流程,从RPM/DEB包安装,到核心配置文件的解读,再到服务启动验证。说白了,就是让你能跑起来一个可用的ClickHouse实例。

我在生产环境里装过不下百次ClickHouse,踩过的坑能写满一页A4纸。嗯,咱们今天就把这些经验一次性说清楚。

4.1 安装方式选择:RPM还是DEB?

ClickHouse官方提供了两种主流包格式:RPM(Red Hat系)和DEB(Debian系)。我个人习惯根据操作系统来选择:

  • CentOS/RHEL 7/8 → 用RPM包
  • Ubuntu 20.04/22.04 → 用DEB包
  • Debian 10/11 → 用DEB包

你可能会问:能不能用tar.gz源码编译?当然可以,但我不建议。生产环境追求稳定和可维护性,包管理工具能帮你省很多事。

核心原则:能用包管理器就别手动编译。ClickHouse的二进制包已经做了充分的性能优化。

4.2 RPM包安装(CentOS/RHEL)

先添加官方YUM仓库。我记得第一次装的时候,忘了加GPG密钥,结果安装报错。你照着下面做就行:

# 添加ClickHouse官方仓库
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo

# 安装GPG密钥
sudo rpm --import https://packages.clickhouse.com/rpm/clickhouse.key

# 安装ClickHouse服务端和客户端
sudo yum install -y clickhouse-server clickhouse-client

# 检查安装版本
clickhouse-server --version

安装完成后,你会看到三个主要组件:

  • clickhouse-server:核心数据库服务
  • clickhouse-client:命令行客户端工具
  • clickhouse-common-static:公共库文件(自动依赖安装)

小技巧:如果你在内网环境无法访问外网,可以提前下载好RPM包,用yum localinstall离线安装。我曾经在金融客户的内网环境就是这么干的。

4.3 DEB包安装(Ubuntu/Debian)

DEB系的安装流程类似,但仓库配置方式不同:

# 添加APT仓库
sudo apt-get install -y apt-transport-https ca-certificates dirmngr
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4

# 添加ClickHouse源
echo "deb https://packages.clickhouse.com/deb stable main" | sudo tee /etc/apt/sources.list.d/clickhouse.list

# 更新并安装
sudo apt-get update
sudo apt-get install -y clickhouse-server clickhouse-client

# 验证安装
clickhouse-server --version

安装过程中,系统会提示你设置默认用户密码。我建议你直接回车跳过,后续在配置文件中统一管理。

4.4 配置文件详解:config.xml

安装完成后,配置文件在/etc/clickhouse-server/目录下。两个核心文件:config.xmlusers.xml。咱们先看config.xml

这个文件是ClickHouse的主配置,控制服务行为。我挑几个关键配置讲:

配置项 默认值 说明
<path> /var/lib/clickhouse/ 数据存储目录,建议挂载独立磁盘
<tmp_path> /var/lib/clickhouse/tmp/ 临时文件目录,排序和聚合操作使用
<listen_host> 127.0.0.1 监听地址,生产环境改为0.0.0.0
<http_port> 8123 HTTP接口端口
<tcp_port> 9000 原生TCP协议端口
<max_memory_usage> 10G 单次查询最大内存,按机器配置调整

这里有个坑:<path>目录的权限。我曾经遇到过启动失败,查了半天发现是目录所有者不对。记住:

# 确保数据目录属于clickhouse用户
sudo chown -R clickhouse:clickhouse /var/lib/clickhouse

注意:生产环境千万不要把<path>放在系统盘。ClickHouse的写入量很大,系统盘满了会导致整个服务器挂掉。我建议单独挂载SSD或NVMe磁盘。

4.5 配置文件详解:users.xml

users.xml管理用户和权限。默认有一个default用户,无密码。生产环境必须改:

<?xml version="1.0"?>
<clickhouse>
    <users>
        <default>
            <password>你的强密码</password>
            <networks>
                <ip>::/0</ip>  <!-- 允许所有IP,生产环境要限制 -->
            </networks>
            <profile>default</profile>
            <quota>default</quota>
        </default>
        
        <admin>
            <password_sha256_hex>加密后的密码</password_sha256_hex>
            <networks>
                <ip>10.0.0.0/8</ip>
            </networks>
            <profile>admin</profile>
            <quota>admin</quota>
        </admin>
    </users>
</clickhouse>

我个人习惯创建两个用户:一个admin用于运维,一个readonly用于业务查询。密码用SHA256加密存储,别用明文。

生成SHA256密码的方法:

# 在ClickHouse客户端中生成
SELECT hex(SHA256('你的密码'));

4.6 服务启动与验证

配置改好了,咱们启动服务:

# 启动ClickHouse服务
sudo systemctl start clickhouse-server

# 设置开机自启
sudo systemctl enable clickhouse-server

# 查看服务状态
sudo systemctl status clickhouse-server

如果一切正常,你会看到active (running)的状态。接下来验证连接:

# 使用客户端连接
clickhouse-client -h 127.0.0.1 -u default --password 你的密码

# 执行一条简单查询
SELECT version(), now(), hostname();

看到类似这样的输出,就说明安装成功了:

┌─version()─┬───────────────now()─┬─hostname()─┐
│ 24.3.2.23 │ 2025-01-15 10:30:45 │ clickhouse1 │
└───────────┴─────────────────────┴────────────┘

验证清单:

  • ✓ 服务状态为active (running)
  • ✓ 客户端能正常连接
  • ✓ 能执行SELECT查询
  • ✓ 日志文件无ERROR级别报错(日志在/var/log/clickhouse-server/)

4.7 本章知识体系

下面这张图帮你梳理安装配置的核心流程:

ClickHouse安装配置核心流程 1. 安装 RPM / DEB 包 2. 配置 config.xml + users.xml 3. 启动 systemctl start config.xml 关键配置 • path:数据存储目录 • listen_host:监听地址 • max_memory_usage:内存限制 users.xml 关键配置 • 用户密码设置 • 网络访问控制 • 配额管理 验证:systemctl status → clickhouse-client → SELECT version()

这张图把安装配置分成了三个步骤:安装、配置、启动。每个步骤都有对应的关键操作。你照着这个流程走,基本不会出大问题。

一句话总结:安装选对包格式,配置改好路径和密码,启动后验证连接。这三步走完,你的ClickHouse就能用了。


公众号:蓝海资料掘金营,微信deep3321