clickhouse是由俄羅斯Yandex公司開發的列式存儲數據庫,於2016年開源,clickhouse的定位是快速的數據分析,對於處理海量數據的狀況性能很是好,在網上也有不少測試的案例,在大數據的狀況下性能遠超過其餘數據庫,而且不依賴於hadoop的生態系統,都是獨立使用,在大數據存儲業務上仍是能夠考慮的.git
clickhouse官網地址:https://clickhouse.yandex/,文檔地址:https://clickhouse.yandex/docs/en/github
另外推薦單頁文檔,更方便:https://clickhouse.yandex/docs/en/single/shell
clickhouse有兩種安裝方式,第一種是使用編譯好的包安裝,第二種是編譯源碼安裝,編譯源碼須要gcc 7的支持,前幾天在centos 7下編譯一直是遇到各類問題沒成功,因此今天主要寫一下rpm包的方式安裝,以後若是搞出來會繼續補充,若是有哪位大牛路過,還請多多指點,一定虛心請教^_^. 編譯安裝的文檔頁面:https://clickhouse.yandex/docs/en/development/build/數據庫
若是是ubuntu或者debian的系統,那麼安裝很是方便,安裝文檔開始給出的就是這個方法,可是對於centos 7系統,官方也是給出了安裝頁面,可是會跳到Altinity也就是大名鼎鼎的領英網的github頁面,altinity編譯而且發佈了rpm包,良心項目,果斷支持,安裝頁面在:https://github.com/Altinity/clickhouse-rpm-install,頁面中給出了更新yum源安裝的方式,可是網速奇慢,能夠在網上搜到rpm包的直接下載地址,這裏貼出來:ubuntu
clickhouse共須要這6個rpm包,都下載下來以後直接使用rpm -ivh後面跟上全部的包安裝就能夠了,基本上不缺乏其餘依賴,安裝以後clickhouse會自動加到systemd啓動當中,安裝後主要的目錄分佈以下:centos
/etc/clickhouse-server clickhouse服務的配置文件目錄,包括:config.xml和users.xml服務器
/etc/clickhouse-client clickhouse客戶端的配置文件目錄,裏面只有一個config.xml而且默認爲空tcp
/var/lib/clickhouse clickhouse默認數據目錄分佈式
/var/log/clickhouse-server clickhouse默認日誌目錄oop
/etc/init.d/clickhouse-server clickhouse啓動shell腳本,用來方便啓動服務的.
/etc/security/limits.d/clickhouse.conf 最大文件打開數的配置,這個在config.xml也能夠配置
/etc/cron.d/clickhouse-server clickhouse定時任務配置,默認沒有任務,可是若是文件不存在啓動會報錯.
/usr/bin clickhouse編譯好的可執行文件目錄,主要有下面幾個:
clickhouse clickhouse主程序可執行文件
clickhouse-compressor
clickhouse-client 是一個軟鏈指向clickhouse,主要是客戶端鏈接操做使用
clickhouse-server 是一個軟連接指向clickhouse,主要是服務操做使用
注意:雖然clickhouse-client是一個軟鏈,可是執行這個軟鏈是進入默認客戶端,可是執行clickhouse卻不行,須要加--client參數,這個須要注意,仍是客戶端和服務命令分開使用比較好.
根據上面目錄咱們能夠將這些主要的文件收集下來,打成安裝包,那麼其餘機器安裝就徹底不須要從新安裝了,直接執行編譯好的二進制便可,而且這個二進制不依賴其餘的系統庫,這裏使用tree打包後的目錄結構以下:
這樣的話放到解壓到其餘服務器就能夠直接使用了,不過還有一些地方須要注意,下面說一下.
在其餘機器解壓後,首先須要創建clickhouse用戶,由於使用rpm默認會建立好這個用戶,因此須要手動建立,命令以下:
useradd clickhouse -d /data/clickhouse -c 'Clickhouse server' -s /sbin/nologin
其中-d指定clickhouse的數據目錄,目錄會自動建立而且權限爲clickhouse的用戶和組,而後須要修改clickhouse相關的配置:
config.xml配置
日誌配置,根據須要修改,而且沒有須要建立而且作受權,好比:
mkdir /var/log/clickhouse-server chown -R clickhouse:clickhouse /var/log/clickhouse-server
http端口號配置:<http_port>8123</http_port>
tcp端口號配置:<tcp_port>9000</tcp_port>
副本之間的數據交換端口:<interserver_http_port>9009</interserver_http_port>,這個多個實例單獨配置便可,不一樣端口clickhouse自動協調交換副本不受影響.
監聽地址:
<listen_host>::1</listen_host>
<listen_host>127.0.0.1</listen_host>
默認是監聽的本地ipv4和ipv6地址,實際運行的時候要追加上一條真實ip.
數據目錄配置:<path>/var/lib/clickhouse/</path>,須要提早建立而且授予clickhouse用戶權限,這裏改成/data/clickhouse
臨時數據目錄配置:<tmp_path>/var/lib/clickhouse/tmp/</tmp_path>,這裏就配置在上面數據目錄下的tmp目錄便可,會自動建立
導入用戶配置:<users_config>users.xml</users_config>,就是另外一個配置文件users.xml
分佈式配置:<remote_servers incl="clickhouse_remote_servers" />,這個後續文章會專門講.
zookeeper複製:<zookeeper incl="zookeeper-servers" optional="true" />,這個也會講.
副本定義:<macros incl="macros" optional="true" />
基本配置就是上面這些,更多的配置根據須要修改,最後這3個分佈式高可用配置,後續會專門寫一個文章.
修改好config.xml配置以後,而後能夠將cron.d和security下面的文件拷貝到對應的目錄中去.
如今其實就能夠調用clickhouse-server二進制文件啓動了,可是爲了方便啓動和管理咱們能夠修改外層clickhouse-server這個腳本啓動,主要修改內容以下:
其實就須要修改配置文件目錄,日誌目錄和二進制目錄便可,pid文件根據須要修改,保存後能夠執行 ./clickhouse-server start 啓動,而後經過 ./bin/clickhouse-client 便可進入默認9000端口的客戶端了,這樣clickhouse的單機配置就能夠了,以後會介紹clickhouse分佈式以及複製的配置.