ClickHouse(03)ClickHouse怎麼安裝和部署

2022-07-05 18:00:23

本文會介紹如何安裝和部署ClickHouse,官方推薦的幾種安裝模式,以及安裝之後如何啟動,ClickHouse叢集如何設定等。

簡單來說,ClickHouse的搭建流程如下:

  1. 環境檢查,環境依賴安裝
  2. 在對應的服務上下載安裝Click House
  3. 設定config.xml和user.xml,如果搭建Click House叢集,還要設定Host檔案和FQDN:(Fully Qualified Domain Name)全限定域名
  4. 啟動server
  5. 連線client

這裡先介紹單機的Click House的搭建和啟動,下一篇會介紹搭建Click House叢集需要設定的東西。

系統要求

ClickHouse可以在任何具有x86_64,AArch64或PowerPC64LE CPU架構的Linux,FreeBSD或Mac OS X上執行。

官方預構建的二進位制檔案通常針對x86_64進行編譯,並利用SSE4.2指令集,因此,除非另有說明,支援它的CPU使用將成為額外的系統需求。

下面是檢查當前CPU是否支援SSE 4.2的命令:

$ grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"

要在不支援SSE4.2或AArch64,PowerPC64LE架構的處理器上執行ClickHouse,官方介紹是說要通過適當的設定調整從原始碼構建ClickHouse,這裡就不詳細介紹了,有興趣可以自行閱讀原始碼瞭解。

安裝包下載

官方檔案裡面,介紹了下面幾種安裝方式:DEB、RPM、Tgz、Docker、其他環境安裝和使用原始碼安裝,本質上都是一樣的,我們選擇合適安裝方式,根據步驟,一步一步來就可以。

一般來說,安裝包會包含下面的內容:

  • clickhouse-common-static — ClickHouse編譯的二進位制檔案。
  • clickhouse-server — 建立clickhouse-server軟連線,並安裝預設設定服務
  • clickhouse-client — 建立clickhouse-client使用者端工具軟連線,並安裝使用者端組態檔。
  • clickhouse-common-static-dbg — 帶有偵錯資訊的ClickHouse二進位制檔案。

DEB安裝包

建議使用Debian或Ubuntu的官方預編譯deb軟體包。執行以下命令來安裝包:

#安裝環境設定和安裝軟體更新
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

#安裝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.

如果要使用最新的版本,請用testing替代stable,一般來說在測試環境使用,生產環境還是要以穩定為主。

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

然後使用yum安裝

$ sudo yum install -y clickhouse-server clickhouse-client

然後啟動clickhouse

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

和DEB安裝安裝方式一樣,如果要使用最新的版本,請用testing替代stable,一般來說在測試環境使用,生產環境還是要以穩定為主。

Tgz安裝包

如果作業系統不支援安裝deb或rpm包,可以使用官方預編譯的tgz軟體包。可以通過curl或wget從儲存庫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

#下載對應版本號的tgz安裝包
curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-common-static-$LATEST_VERSION.tgz"
curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-common-static-dbg-$LATEST_VERSION.tgz"
curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-server-$LATEST_VERSION.tgz"
curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-client-$LATEST_VERSION.tgz"

#解壓壓縮包並執行對應的指令碼
tar -xzvf "clickhouse-common-static-$LATEST_VERSION.tgz"
#生成ClickHouse編譯的二進位制檔案
sudo "clickhouse-common-static-$LATEST_VERSION/install/doinst.sh"

tar -xzvf "clickhouse-common-static-dbg-$LATEST_VERSION.tgz"
#生成帶有偵錯資訊的ClickHouse二進位制檔案
sudo "clickhouse-common-static-dbg-$LATEST_VERSION/install/doinst.sh"

tar -xzvf "clickhouse-server-$LATEST_VERSION.tgz"
#建立clickhouse-server軟連線,並安裝預設設定服務
sudo "clickhouse-server-$LATEST_VERSION/install/doinst.sh"
#啟動服務
sudo /etc/init.d/clickhouse-server start

tar -xzvf "clickhouse-client-$LATEST_VERSION.tgz"
#建立clickhouse-client使用者端工具軟連線,並安裝使用者端組態檔
sudo "clickhouse-client-$LATEST_VERSION/install/doinst.sh"

Docker安裝包

通過Docker安裝,需要你搭建docker環境,這裡就不過多介紹,預設你已經安裝了docker,如果還沒有可以自行搜尋docker的安裝,搭建好docker。

通過docker安裝,特別簡單,使用官方的映象執行一個範例就可以,執行下面的命令即可。

# 啟動伺服器範例
$ docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 clickhouse/clickhouse-server

# 進入docker內部並且進入clickhouse
$ docker run -it --rm --link some-clickhouse-server:clickhouse-server --entrypoint clickhouse-client clickhouse/clickhouse-server --host clickhouse-server
# OR
$ docker exec -it some-clickhouse-server clickhouse-client


# 通過curl連線到clickhouse,輸出'Hello, ClickHouse!'
$ echo "SELECT 'Hello, ClickHouse!'" | docker run -i --rm --link some-clickhouse-server:clickhouse-server curlimages/curl 'http://clickhouse-server:8123/?query=' -s --data-binary @-

ClickHouse的docker映象,預設只能通過docker網路存取。

如果需要外網範圍,我們也可以通過將容器內部的特定埠對映到主機埠來公開在Docker中執行的ClickHouse或者通過允許容器直接使用主機埠(也允許存檔更好的網路效能)。

#將容器內部的特定埠對映到主機埠來公開在Docker中執行的ClickHouse
$ docker run -d -p 18123:8123 -p19000:9000 --name some-clickhouse-server --ulimit nofile=262144:262144 clickhouse/clickhouse-server

$ echo 'SELECT version()' | curl 'http://localhost:18123/' --data-binary @-


#允許容器直接使用主機埠
$ docker run -d --network=host --name some-clickhouse-server --ulimit nofile=262144:262144 clickhouse/clickhouse-server
$ echo 'SELECT version()' | curl 'http://localhost:8123/' --data-binary @-

如果需要調整config.xml,可以使用下面的命令。

$ docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 -v /path/to/your/config.xml:/etc/clickhouse-server/config.xml clickhouse/clickhouse-server

其他安裝方式

ClickHouse還可以使用原始碼安裝,或者手動下載安裝包編譯,有需要的可以到ClickHouse官網檢視檔案,這裡不做太多篇幅的介紹。

啟動

執行如下命令在後臺啟動服務:

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

紀錄檔檔案將輸出在/var/log/clickhouse-server/資料夾。

如果伺服器沒有啟動,檢查/etc/clickhouse-server/config.xml中的設定。

clickhouse的設定引數主要分了兩個檔案,一個是config.xml中的伺服器設定引數(Server Settings),另一個是常規設定引數(setttings)。

手動從控制檯啟動伺服器:

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

在這種情況下,紀錄檔將被列印到控制檯,這在開發過程中很方便。

如果組態檔在當前目錄中,則不需要指定——config-file引數。預設情況下,它的路徑為./config.xml。

ClickHouse支援存取限制設定。它們位於users.xml檔案(與config.xml同級目錄)。

預設情況下,允許default使用者從任何地方存取,不需要密碼。可檢視user/default/networks。 更多資訊,請參見Configuration Files。

啟動服務後,您可以使用命令列使用者端連線到它:

$ clickhouse-client

預設情況下,使用default使用者並不攜帶密碼連線到localhost:9000。還可以使用--host引數連線到指定伺服器。

範例:

$ ./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.

:)

當到了這裡,你就成功搭建了一個單機版的Click House了。

ClickHouse相關資料分享

ClickHouse經典中文檔案分享

參考文章:ClickHouse(03)ClickHouse怎麼安裝和部署