首页 > 技术文章 > 二 clickhouse-部署

tesla-turing 2021-12-11 17:17 原文

ClickHouse支持运行在主流64位CPU架构(X86、AArch和 PowerPC)的Linux操作系统之上,可以通过源码编译、预编译压缩包、Docker镜像和RPM等多种方法进行安装。

1 单节点部署

1) 信息步骤

  • 安装curl工具

yum install -y curl
  • 添加clickhouse的yum镜像

curl -s https://packagecloud.io/install/repositories/altinity/clickhouse/script.rpm.sh | sudo bash
  • 检查镜像情况

[root@linux03 ~]# yum list | grep clickhouse  
clickhouse-client.x86_64                   20.8.3.18-1.el7        @Altinity_clickhouse
clickhouse-common-static.x86_64            20.8.3.18-1.el7        @Altinity_clickhouse
clickhouse-server.x86_64                   20.8.3.18-1.el7        @Altinity_clickhouse
clickhouse-server-common.x86_64            20.8.3.18-1.el7        @Altinity_clickhouse
clickhouse-debuginfo.x86_64                20.1.11.73-1.el7       Altinity_clickhouse
clickhouse-odbc.x86_64                     1.1.9-1.el7            Altinity_clickhouse
clickhouse-test.x86_64                     20.8.3.18-1.el7        Altinity_clickhouse
clicktail.x86_64                           1.0.20180401-1         Altinity_clickhouse
  • 安装clickhouse的服务端和客户端

yum install -y clickhouse-server clickhouse-client
yum -y install clickhouse-client
  • 启动服务端

service clickhouse-server start 
  • 启动交互式客户端

[root@ck1 /]# clickhouse-client  -m
ClickHouse client version 20.8.3.18.
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.8.3 revision 54438.
ck1 :) 

2) CK目录介绍

程序在安装的过程中会自动构建整套目录结构,接下来分别说明它们的作用。

(1) /etc/clickhouse-server:

服务端的配置文件目录,包括全局配置config.xml 和用户配置users.xml等。

(2)/var/lib/clickhouse:

默认的数据存储目录(通常会修改默认路径配置,将数据保存到大容量磁盘挂载的路径)。

(3)/var/log/clickhouse-server

默认保存日志的目录(通常会修改路径配置,将日志保存到大容量磁盘挂载的路径)。

(4)/usr/bin

find ./ -name "clickhouse*"
clickhouse:主程序的可执行文件。 
clickhouse-client:一个指向ClickHouse可执行文件的软链接,供客户端连接 使用。 
clickhouse-server:一个指向ClickHouse可执行文件的软链接,供服务端启动 使用。
clickhouse-compressor:内置提供的压缩工具,可用于数据的正压反解。 

3) 启动

在启动之前建议首先修改CK的核心参数配置打开config.xml配置文件,修改数据保存的地址:

/etc/clickhouse-server
[root@linux03 clickhouse-server]# ll
total 44
-rw-r--r--. 1 root root 33742 Dec  8 20:47 config.xml
-rw-r--r--. 1 root root  5587 Oct  5  2020 users.xml

vi config.xml

<path>/chbase/data/</path> 
<tmp_path>/chbase/data/tmp/</tmp_path> 
<user_files_path>/chbase/data/user_files/</user_files_path>

ClickHouse的底层访问接口支持TCP和HTTP两种协议,其中,TCP 协议拥有更好的性能,其默认端口为9000,主要用于集群间的内部通信及CLI客户端;而HTTP协议则拥有更好的兼容性,可以通过REST服务的形式被广泛用于JAVA、Python等编程语言的客户端,其默认端口为8123。通常而言,并不建议用户直接使用底层接口访问ClickHouse,更为推荐的方式是通过CLI和JDBC这些封装接口,因为它们更加简单易用!

  • 启动服务

clickhouse-server start  
netstat -nltp | grep 9000
tcp6       0      0 :::9000                 :::*                    LISTEN      1354/clickhouse-ser 

交互式客户端

 

 

 

 

  • -h

  • --port

  • -m 交互式客户端中可以执行多行函数

  • -q

# clickhouse-client  -m
ClickHouse client version 20.8.3.18.
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.8.3 revision 54438.
linux03 :) 

(1)--host/-h:服务端的地址,默认值为localhost。如果修改了 config.xml内的listen_host,则需要依靠此参数指定服务端 地址

(2)--port:服务端的TCP端口,默认值为9000。如果要修改config.xml内的tcp_port,则需要使用此参数指定。

(3)--user/-u:登录的用户名,默认值为default。如果使用非 default的其他用户名登录,则需要使用此参数指定,例如下 面所示代码。关于自定义用户的介绍将在后面介绍或者关注博客地址。 https://blog.csdn.net/qq_37933018?t=1

(4)--password:登录的密码,默认值为空。如果在用户定义中未设置 密码,则不需要填写(例如默认的default用户)。

(5)--database/-d:登录的数据库,默认值为default。

(6)--query/-q:只能在非交互式查询时使用,用于指定SQL语句。

(7)--multiquery/-n:在非交互式执行时,允许一次运行多条SQL语 句,多条语句之间以分号间隔。

(8)--time/-t:在非交互式执行时,会打印每条SQL的执行时间,

  • 非交互式客户端

非交互式执行方式一般只执行一次 ,不进入到客户中的非操作方式 ,用户测试,数据导入, 数据导出非常方便 !

 clickhouse-client  -n -qclickhouse-client  -q -n  'show databases; use test1;' ;
-n 支持同时执行多个SQL语句 ,语句之间使用
;号分割-q 执行SQL语句

只用这种方式也可以实现数据的导入和数据的导出!后面我们会介绍到!!

  • clickhouse-client -h linux01 报错 拒绝连接

vi  conf.xml
<listen_host>::</listen_host>
service   clickhouse-server  restart  -- 重启服务 
clickhouse-client  -h  linux01

2 集群部署

https://repo.yandex.ru/clickhouse/rpm/testing/x86_64/

可以将rpm二进制软件安装包 下载到本地 使用 rpm命令安装

在每个节上安装ZK

推荐阅读