- revert back to "two" options instead of "three". Docker is a form of self-hosted ClickHouse and it is also listed as such in the text.
18 KiB
sidebar_label | keywords | slug | ||||
---|---|---|---|---|---|---|
Install |
|
/en/install |
Installing ClickHouse
You have two options for getting up and running with ClickHouse:
- ClickHouse Cloud: The official ClickHouse as a service, - built by, maintained and supported by the creators of ClickHouse
- Self-managed ClickHouse: ClickHouse can run on any Linux, FreeBSD, or Mac OS X with x86-64, ARM, or PowerPC64LE CPU architecture
ClickHouse Cloud
The quickest and easiest way to get up and running with ClickHouse is to create a new service in ClickHouse Cloud:
Once your Cloud service is provisioned, you will be able to connect to it and start inserting data.
Self-Managed Install
- The simplest way to download ClickHouse locally is to run the following command. If your operating system is supported, an appropriate ClickHouse binary will be downloaded and made runnable:
curl https://clickhouse.com/ | sh
- Run the
install
command, which defines a collection of useful symlinks along with the files and folders used by ClickHouse - all of which you can see in the output of the install script:
sudo ./clickhouse install
- At the end of the install script, you are prompted for a password for the
default
user. Feel free to enter a password, or you can optionally leave it blank:
Creating log directory /var/log/clickhouse-server.
Creating data directory /var/lib/clickhouse.
Creating pid directory /var/run/clickhouse-server.
chown -R clickhouse:clickhouse '/var/log/clickhouse-server'
chown -R clickhouse:clickhouse '/var/run/clickhouse-server'
chown clickhouse:clickhouse '/var/lib/clickhouse'
Enter password for default user:
You should see the following output:
ClickHouse has been successfully installed.
Start clickhouse-server with:
sudo clickhouse start
Start clickhouse-client with:
clickhouse-client
- Run the following command to start the ClickHouse server:
sudo clickhouse start
:::tip The Quick Start walks through the steps to download and run ClickHouse, connect to it, and insert data. :::
Available Installation Options
From DEB Packages
It is recommended to use official pre-compiled deb
packages for Debian or Ubuntu. Run these commands to install packages:
sudo apt-get install -y apt-transport-https ca-certificates dirmngr
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've set up a password.
Deprecated Method for installing deb-packages
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.
Migration Method for installing the deb-packages
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.
You can replace stable
with lts
to use different release kinds based on your needs.
You can also download and install packages manually from here.
Packages
clickhouse-common-static
— Installs ClickHouse compiled binary files.clickhouse-server
— Creates a symbolic link forclickhouse-server
and installs the default server configuration.clickhouse-client
— Creates a symbolic link forclickhouse-client
and other client-related tools. and installs client configuration files.clickhouse-common-static-dbg
— Installs ClickHouse compiled binary files with debug info.
:::info
If you need to install specific version of ClickHouse you have to install all packages with the same version:
sudo apt-get install clickhouse-server=21.8.5.7 clickhouse-client=21.8.5.7 clickhouse-common-static=21.8.5.7
:::
From RPM Packages
It is recommended to use official pre-compiled rpm
packages for CentOS, RedHat, and all other rpm-based Linux distributions.
First, you need to add the official repository:
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
sudo yum install -y clickhouse-server clickhouse-client
sudo /etc/init.d/clickhouse-server start
clickhouse-client # or "clickhouse-client --password" if you set up a password.
Deprecated Method for installing rpm-packages
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.
You can replace stable
with lts
to use different release kinds based on your needs.
Then run these commands to install packages:
sudo yum install clickhouse-server clickhouse-client
You can also download and install packages manually from here.
From Tgz Archives
It is recommended to use official pre-compiled tgz
archives for all Linux distributions, where installation of deb
or rpm
packages is not possible.
The required version can be downloaded with curl
or wget
from repository https://packages.clickhouse.com/tgz/.
After that downloaded archives should be unpacked and installed with installation scripts. Example for the latest stable version:
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
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"
Deprecated Method for installing tgz archives
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
For production environments, it’s recommended to use the latest stable
-version. You can find its number on GitHub page https://github.com/ClickHouse/ClickHouse/tags with postfix -stable
.
From Docker Image
To run ClickHouse inside Docker follow the guide on Docker Hub. Those images use official deb
packages inside.
Single Binary
You can install ClickHouse on Linux using a single portable binary from the latest commit of the master
branch: [https://builds.clickhouse.com/master/amd64/clickhouse].
curl -O 'https://builds.clickhouse.com/master/amd64/clickhouse' && chmod a+x clickhouse
sudo ./clickhouse install
From Precompiled Binaries for Non-Standard Environments
For non-Linux operating systems and for ARM CPU architecture, ClickHouse builds are provided as a cross-compiled binary from the latest commit of the master
branch (with a few hours delay).
- MacOS x86-64
curl -O 'https://builds.clickhouse.com/master/macos/clickhouse' && chmod a+x ./clickhouse
- MacOS ARM (Apple Silicon)
curl -O 'https://builds.clickhouse.com/master/macos-aarch64/clickhouse' && chmod a+x ./clickhouse
- FreeBSD x86-64
curl -O 'https://builds.clickhouse.com/master/freebsd/clickhouse' && chmod a+x ./clickhouse
- Linux ARM
curl -O 'https://builds.clickhouse.com/master/aarch64/clickhouse' && chmod a+x ./clickhouse
Run sudo ./clickhouse install
to install ClickHouse system-wide (also with needed configuration files, configuring users etc.). Then run sudo clickhouse start
commands to start the clickhouse-server and clickhouse-client
to connect to it.
Use the clickhouse client
to connect to the server, or clickhouse local
to process local data.
From Sources
To manually compile ClickHouse, follow the instructions for Linux or Mac OS X.
You can compile packages and install them or use programs without installing packages. Also by building manually you can disable SSE 4.2 requirement or build for AArch64 CPUs.
Client: programs/clickhouse-client
Server: programs/clickhouse-server
You’ll need to create a data and metadata folders and chown
them for the desired user. Their paths can be changed in server config (src/programs/server/config.xml), by default they are:
/var/lib/clickhouse/data/default/
/var/lib/clickhouse/metadata/default/
On Gentoo, you can just use emerge clickhouse
to install ClickHouse from sources.
Launch
To start the server as a daemon, run:
$ sudo clickhouse start
There are also other ways to run ClickHouse:
$ sudo service clickhouse-server start
If you do not have service
command, run as
$ sudo /etc/init.d/clickhouse-server start
If you have systemctl
command, run as
$ sudo systemctl start clickhouse-server.service
See the logs in the /var/log/clickhouse-server/
directory.
If the server does not start, check the configurations in the file /etc/clickhouse-server/config.xml
.
You can also manually launch the server from the console:
$ clickhouse-server --config-file=/etc/clickhouse-server/config.xml
In this case, the log will be printed to the console, which is convenient during development.
If the configuration file is in the current directory, you do not need to specify the --config-file
parameter. By default, it uses ./config.xml
.
ClickHouse supports access restriction settings. They are located in the users.xml
file (next to config.xml
).
By default, access is allowed from anywhere for the default
user, without a password. See user/default/networks
.
For more information, see the section “Configuration Files”.
After launching server, you can use the command-line client to connect to it:
$ clickhouse-client
By default, it connects to localhost:9000
on behalf of the user default
without a password. It can also be used to connect to a remote server using --host
argument.
The terminal must use UTF-8 encoding. For more information, see the section “Command-line client”.
Example:
$ ./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.
:)
Congratulations, the system works!
To continue experimenting, you can download one of the test data sets or go through tutorial.
Self-Managed Requirements
CPU Architecture
ClickHouse can run on any Linux, FreeBSD, or Mac OS X with x86-64, ARM, or PowerPC64LE CPU architecture.
Official binaries are available for x86-64 and ARM.
It is also possible to build ClickHouse from source, (see above)[#from-sources] for details.
ClickHouse implements parallel data processing and uses all the hardware resources available. When choosing a processor, take into account that ClickHouse works more efficiently at configurations with a large number of cores but a lower clock rate than at configurations with fewer cores and a higher clock rate. For example, 16 cores with 2600 MHz is preferable to 8 cores with 3600 MHz.
It is recommended to use Turbo Boost and hyper-threading technologies. It significantly improves performance with a typical workload.
RAM
We recommend using a minimum of 4GB of RAM to perform non-trivial queries. The ClickHouse server can run with a much smaller amount of RAM, but it requires memory for processing queries.
The required volume of RAM depends on:
- The complexity of queries.
- The amount of data that is processed in queries.
To calculate the required volume of RAM, you should estimate the size of temporary data for GROUP BY, DISTINCT, JOIN and other operations you use.
ClickHouse can use external memory for temporary data. See GROUP BY in External Memory for details.
Swap File
Disable the swap file for production environments.
Storage Subsystem
You need to have 2GB of free disk space to install ClickHouse.
The volume of storage required for your data should be calculated separately. Assessment should include:
-
Estimation of the data volume.
You can take a sample of the data and get the average size of a row from it. Then multiply the value by the number of rows you plan to store.
-
The data compression coefficient.
To estimate the data compression coefficient, load a sample of your data into ClickHouse, and compare the actual size of the data with the size of the table stored. For example, clickstream data is usually compressed by 6-10 times.
To calculate the final volume of data to be stored, apply the compression coefficient to the estimated data volume. If you plan to store data in several replicas, then multiply the estimated volume by the number of replicas.
Network
If possible, use networks of 10G or higher class.
The network bandwidth is critical for processing distributed queries with a large amount of intermediate data. Besides, network speed affects replication processes.
Software
ClickHouse is developed primarily for the Linux family of operating systems. The recommended Linux distribution is Ubuntu. The tzdata
package should be installed in the system.