Skip to main content

安装ClickHouse

您有三种选择来快速开始使用ClickHouse:

  • ClickHouse Cloud: 官方ClickHouse即服务,由ClickHouse的创建者构建、维护和支持
  • 快速安装: 一个易于下载的二进制文件,用于测试和开发ClickHouse
  • 生产部署: ClickHouse可以在任何具有x86-64、ARM或PowerPC64LE CPU架构的Linux、FreeBSD或macOS上运行
  • Docker镜像: 使用Docker Hub中的官方Docker镜像

ClickHouse Cloud

使用ClickHouse Cloud中的新服务是快速上手ClickHouse的最简单方法。

快速安装

tip

对于特定版本的生产安装,请参见下面的安装选项

在Linux、macOS和FreeBSD上:

  1. 如果您刚刚开始并想了解ClickHouse的功能,下载ClickHouse的最简单方法是运行以下命令。它会为您的操作系统下载一个单个的二进制文件,该文件可用于运行ClickHouse服务器、clickhouse-client、clickhouse-local、ClickHouse Keeper和其他工具:

    curl https://clickhouse.com/ | sh
  2. 运行以下命令启动ClickHouse服务器:

    ./clickhouse server

    第一次运行此脚本时,会在当前目录中创建必要的文件和文件夹,然后启动服务器。

  3. 打开一个新的终端,使用 ./clickhouse client 连接到您的服务:

    ./clickhouse client
    ./clickhouse client
    ClickHouse client version 23.2.1.1501 (official build).
    Connecting to localhost:9000 as user default.
    Connected to ClickHouse server version 23.2.1.

    local-host :)

    您已准备好开始向ClickHouse发送DDL和SQL命令了!

tip

快速入门介绍了创建表和插入数据的步骤。

生产部署

对于ClickHouse的生产部署,可以从以下安装选项中选择一个。

从DEB包安装

建议使用官方预编译的Debian或Ubuntu的deb包。运行以下命令安装包:

#### 安装Debian存储库
``` bash
sudo apt-get install -y apt-transport-https ca-certificates dirmngr
sudo gpg --no-default-keyring --keyring /usr/share/keyrings/clickhouse-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 8919F6BD2B48D754

echo "deb [signed-by=/usr/share/keyrings/clickhouse-keyring.gpg] https://packages.clickhouse.com/deb stable main" | sudo tee \
/etc/apt/sources.list.d/clickhouse.list
sudo apt-get update

安装ClickHouse服务器和客户端

sudo apt-get install -y clickhouse-server clickhouse-client

启动ClickHouse服务器

sudo service clickhouse-server start
clickhouse-client # or "clickhouse-client --password" if you've set up a password.
迁移方法安装deb包
sudo apt-get install apt-transport-https ca-certificates dirmngr
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E0C56BD4

echo "deb https://repo.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

sudo service clickhouse-server start
clickhouse-client # or "clickhouse-client --password" if you set up a password.
过期的安装rpm包的方法
sudo apt-key del E0C56BD4
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754
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

sudo service clickhouse-server start
clickhouse-client # or "clickhouse-client --password" if you set up a password.

你可以根据需要使用不同的发布类型stable替换为lts

您还可以从这里手动下载和安装包。

安装独立的ClickHouse Keeper

tip

在生产环境中,我们强烈建议在专用节点上运行ClickHouse Keeper。 在测试环境中,如果您决定在同一台服务器上运行ClickHouse Server和ClickHouse Keeper,则不需要安装ClickHouse Keeper,因为它已包含在ClickHouse服务器中。 这个命令只需要在独立的ClickHouse Keeper服务器上。

sudo apt-get install -y clickhouse-keeper

启用并启动ClickHouse Keeper

sudo systemctl enable clickhouse-keeper
sudo systemctl start clickhouse-keeper
sudo systemctl status clickhouse-keeper

  • clickhouse-common-static — 安装ClickHouse编译的二进制文件。
  • clickhouse-server — 为clickhouse-server创建符号链接并安装默认的服务器配置。
  • clickhouse-client — 为clickhouse-client和其他客户端相关工具创建符号链接。并安装客户端配置文件。
  • clickhouse-common-static-dbg — 安装带有调试信息的ClickHouse编译的二进制文件。
  • clickhouse-keeper - 用于在专用ClickHouse Keeper节点上安装ClickHouse Keeper。如果您在与ClickHouse服务器相同的服务器上运行ClickHouse Keeper,则不需要安装此软件包。安装ClickHouse Keeper和默认的ClickHouse Keeper配置文件。
info

如果您需要安装特定版本的ClickHouse,您必须安装所有具有相同版本的软件包: sudo apt-get install clickhouse-server=21.8.5.7 clickhouse-client=21.8.5.7 clickhouse-common-static=21.8.5.7

从RPM包安装

建议使用官方预编译的rpm包,适用于CentOS、RedHat和所有其他基于rpm的Linux发行版。

安装RPM存储库

首先,您需要添加官方存储库:

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo

对于zypper包管理器(openSUSE、SLES)的系统:

sudo zypper addrepo -r https://packages.clickhouse.com/rpm/clickhouse.repo -g
sudo zypper --gpg-auto-import-keys refresh clickhouse-stable

稍后,任何yum install都可以替换为zypper install。要指定特定版本,请在软件包名称的末尾添加-$VERSION,例如`clickhouse-client-

安装ClickHouse服务器和客户端

sudo yum install -y clickhouse-server clickhouse-client

启动ClickHouse服务器

sudo systemctl enable clickhouse-server
sudo systemctl start clickhouse-server
sudo systemctl status clickhouse-server
clickhouse-client # or "clickhouse-client --password" if you set up a password.

安装独立的ClickHouse Keeper

tip

在生产环境中,我们强烈建议在专用节点上运行ClickHouse Keeper。 在测试环境中,如果您决定在同一台服务器上运行ClickHouse Server和ClickHouse Keeper,则不需要安装ClickHouse Keeper,因为它已包含在ClickHouse服务器中。 这个命令只需要在独立的ClickHouse Keeper服务器上。

sudo yum install -y clickhouse-keeper

启用并启动ClickHouse Keeper

sudo systemctl enable clickhouse-keeper
sudo systemctl start clickhouse-keeper
sudo systemctl status clickhouse-keeper
过时的安装rpm包的方法
sudo yum install yum-utils
sudo rpm --import https://repo.clickhouse.com/CLICKHOUSE-KEY.GPG
sudo yum-config-manager --add-repo https://repo.clickhouse.com/rpm/clickhouse.repo
sudo yum install clickhouse-server clickhouse-client

sudo /etc/init.d/clickhouse-server start
clickhouse-client # or "clickhouse-client --password" if you set up a password.

你可以根据需要使用不同的发布类型stable替换为lts

然后运行以下命令安装包:

sudo yum install clickhouse-server clickhouse-client

您还可以从这里手动下载和安装包。

从Tgz归档安装

建议使用官方预编译的tgz归档文件,适用于所有不支持安装debrpm包的Linux发行版。

可以使用curlwget从存储库https://packages.clickhouse.com/tgz/下载所需的版本。 之后,下载的归档文件应该使用安装脚本进行解压和安装。最新稳定版本的示例:

LATEST_VERSION=$(curl -s https://packages.clickhouse.com/tgz/stable/ | \
grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort -V -r | head -n 1)
export LATEST_VERSION

case $(uname -m) in
x86_64) ARCH=amd64 ;;
aarch64) ARCH=arm64 ;;
*) echo "Unknown architecture $(uname -m)"; exit 1 ;;
esac

for PKG in clickhouse-common-static clickhouse-common-static-dbg clickhouse-server clickhouse-client clickhouse-keeper
do
curl -fO "https://packages.clickhouse.com/tgz/stable/$PKG-$LATEST_VERSION-${ARCH}.tgz" \
|| curl -fO "https://packages.clickhouse.com/tgz/stable/$PKG-$LATEST_VERSION.tgz"
done

tar -xzvf "clickhouse-common-static-$LATEST_VERSION-${ARCH}.tgz" \
|| tar -xzvf "clickhouse-common-static-$LATEST_VERSION.tgz"
sudo "clickhouse-common-static-$LATEST_VERSION/install/doinst.sh"

tar -xzvf "clickhouse-common-static-dbg-$LATEST_VERSION-${ARCH}.tgz" \
|| tar -xzvf "clickhouse-common-static-dbg-$LATEST_VERSION.tgz"
sudo "clickhouse-common-static-dbg-$LATEST_VERSION/install/doinst.sh"

tar -xzvf "clickhouse-server-$LATEST_VERSION-${ARCH}.tgz" \
|| tar -xzvf "clickhouse-server-$LATEST_VERSION.tgz"
sudo "clickhouse-server-$LATEST_VERSION/install/doinst.sh" configure
sudo /etc/init.d/clickhouse-server start

tar -xzvf "clickhouse-client-$LATEST_VERSION-${ARCH}.tgz" \
|| tar -xzvf "clickhouse-client-$LATEST_VERSION.tgz"
sudo "clickhouse-client-$LATEST_VERSION/install/doinst.sh"
过时的安装tgz归档文件的方法
export LATEST_VERSION=$(curl -s https://repo.clickhouse.com/tgz/stable/ | \
grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort -V -r | head -n 1)
curl -O https://repo.clickhouse.com/tgz/stable/clickhouse-common-static-$LATEST_VERSION.tgz
curl -O https://repo.clickhouse.com/tgz/stable/clickhouse-common-static-dbg-$LATEST_VERSION.tgz
curl -O https://repo.clickhouse.com/tgz/stable/clickhouse-server-$LATEST_VERSION.tgz
curl -O https://repo.clickhouse.com/tgz/stable/clickhouse-client-$LATEST_VERSION.tgz

tar -xzvf clickhouse-common-static-$LATEST_VERSION.tgz
sudo clickhouse-common-static-$LATEST_VERSION/install/doinst.sh

tar -xzvf clickhouse-common-static-dbg-$LATEST_VERSION.tgz
sudo clickhouse-common-static-dbg-$LATEST_VERSION/install/doinst.sh

tar -xzvf clickhouse-server-$LATEST_VERSION.tgz
sudo clickhouse-server-$LATEST_VERSION/install/doinst.sh
sudo /etc/init.d/clickhouse-server start

tar -xzvf clickhouse-client-$LATEST_VERSION.tgz
sudo clickhouse-client-$LATEST_VERSION/install/doinst.sh

在生产环境中,建议使用最新的stable版本。您可以在GitHub页面

从Docker镜像安装

要在Docker中运行ClickHouse,请按照Docker Hub上的指南进行操作。这些镜像使用官方的deb包。

非生产部署(高级)

从源代码编译

要手动编译ClickHouse,请按照LinuxmacOS上的说明进行操作。

您可以编译软件包并安装它们,也可以在不安装软件包的情况下使用程序。

  客户端:<build_directory>/programs/clickhouse-client
服务器:<build_directory>/programs/clickhouse-server

您需要手动创建数据和元数据文件夹,并为所需的用户chown它们。它们的路径可以在服务器配置(src/programs/server/config.xml)中更改,默认情况下它们是:

    /var/lib/clickhouse/data/default/
/var/lib/clickhouse/metadata/default/

在Gentoo上,您可以使用emerge clickhouse从源代码安装ClickHouse。

使用CI生成的二进制文件安装

ClickHouse的持续集成(CI)基础设施为ClickHouse存储库中的每个提交生成专门的构建,例如sanitized构建、未优化(Debug)构建、交叉编译构建等。虽然这些构建通常只在开发过程中有用,但在某些情况下也可能对用户有用。

note

由于ClickHouse的CI随着时间的推移而不断发展,下载CI生成的构建的确切步骤可能会有所不同。 此外,CI可能会删除过旧的构建工件,使其无法下载。

例如,要下载ClickHouse v23.4的aarch64二进制文件,请按照以下步骤操作:

  • 找到发布v23.4的GitHub拉取请求:[分支23.4的发布拉取请求](
  • 点击“Commits”,然后点击类似于"Update autogenerated version to 23.4.2.1 and contributors" 的特定版本的提交。
  • 点击列表中的“ClickHouse Build Check”旁边的“Details”,它将打开类似于此页面的页面。
  • 找到编译器=“clang-*-aarch64”的行-有多行。
  • 下载这些构建的工件。

要下载非常旧的不支持SSE3的x86-64系统或不支持ARMv8.1-A的旧ARM系统的二进制文件,请打开拉取请求并找到CI检查“BuilderBinAmd64Compat”,分别是“BuilderBinAarch64V80Compat”。然后点击“Details”,打开“Build”文件夹,滚动到末尾,找到消息“Notice: Build URLs https://s3.amazonaws.com/clickhouse/builds/PRs/.../.../binary_aarch64_v80compat/clickhouse”。然后点击链接下载构建。

仅macOS:使用Homebrew安装

要使用homebrew安装ClickHouse,请参见此处

启动

要将服务器作为守护进程启动,请运行:

$ sudo clickhouse start

还有其他运行ClickHouse的方法:

$ sudo service clickhouse-server start

如果没有service命令,请运行

$ sudo /etc/init.d/clickhouse-server start

如果有systemctl命令,请运行

$ sudo systemctl start clickhouse-server.service

查看/var/log/clickhouse-server/目录中的日志。

如果服务器无法启动,请检查/etc/clickhouse-server/config.xml文件中的配置。

您还可以从控制台手动启动服务器:

$ clickhouse-server --config-file=/etc/clickhouse-server/config.xml

在这种情况下,日志将打印到控制台,这在开发过程中很方便。

如果配置文件在当前目录中,则不需要指定--config-file参数。默认情况下,它使用./config.xml

ClickHouse支持访问限制设置。它们位于users.xml文件中(与config.xml相邻)。

默认情况下,default用户允许从任何地方访问,而无需密码。请参见user/default/networks

有关更多信息,请参见“配置文件”部分。

启动服务器后,可以使用命令行客户端连接到它:

$ clickhouse-client

默认情况下,它会连接到localhost:9000,代表用户default,无需密码。也可以使用--host参数连接到远程服务器。

终端必须使用UTF-8编码。

有关更多信息,请参见“命令行客户端”部分。

示例:

$ ./clickhouse-client
ClickHouse client version 0.0.18749.
Connecting to localhost:9000.
Connected to ClickHouse server version 0.0.18749.

:) SELECT 1

SELECT 1

┌─1─┐
│ 1 │
└───┘

1 rows in set. Elapsed: 0.003 sec.

:)

恭喜,系统运行正常!

要继续实验,您可以下载其中一个测试数据集或查看教程

自管理ClickHouse的建议

ClickHouse可以在任何具有x86-64、ARM或PowerPC64LE CPU架构的Linux、FreeBSD或macOS上运行。

ClickHouse使用所有可用的硬件资源来处理数据。

ClickHouse倾向于以较低的时钟速率运行更多的核心,而不是以较高的时钟速率运行较少的核心。

我们建议使用至少4GB的RAM来执行非平凡查询。ClickHouse服务器可以运行在更小的RAM量上,但查询将经常中止。

所需的RAM量通常取决于:

  • 查询的复杂性。
  • 在查询中处理的数据量。

要计算所需的RAM量,您可以估算GROUP BYDISTINCTJOIN和其他操作的临时数据的大小。

为了减少内存消耗,ClickHouse可以将临时数据交换到外部存储。有关详细信息,请参见外部内存中的GROUP BY

我们建议在生产环境中禁用操作系统的交换文件。

ClickHouse二进制文件至少需要2.5 GB的磁盘空间进行安装。

您的数据所需的存储量可以根据以下内容分别计算:

  • 数据量的估算。

    您可以对数据进行抽样,并从中获取行的平均大小。然后将该值乘以您计划存储的行数。

  • 数据压缩系数。

    要估算数据压缩系数,请将数据样本加载到ClickHouse中,并将实际数据的大小与存储的表的大小进行比较。例如,点击流数据通常压缩6-10倍。

要计算要存储的最终数据量,请将压缩系数应用于估算的数据量。如果您计划在多个副本中存储数据,则将估算的量乘以副本的数量。

对于分布式ClickHouse部署(集群),我们建议至少使用10G级网络连接。

网络带宽对处理具有大量中间数据的分布式查询至关重要。此外,网络速度会影响复制过程。