1. ClickHouse 安装准备工作 1.1. 关于版本和系统的选择 操作系统:CentOS Linux release 7.6.1810 (Core)
ClickHouse : 21.4.3
1.2 CentOS7 打开文件数限制 在 /etc/security/limits.conf 这个文件的末尾加入一下内容:
1 2 3 4 5 sudo vim /etc/security/limits.conf * soft nofile 65536 * hard nofile 65536 * soft nproc 131072 * hard nproc 131072
在 /etc/security/limits.d/90-nproc.conf 这个文件的末尾加入一下内容:
1 2 3 4 5 6 sudo vim /etc/security/limits.d/90-nproc.conf * soft nofile 65536 * hard nofile 65536 * soft nproc 131072 * hard nproc 131072
重启服务器之后生效,用 ulimit -n 或者 ulimit -a 查看设置结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [root@node3 ~]# ulimit -n 65536 [root@node3 ~]# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 127824 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 65536 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 131072 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited [root@node3 ~]#
1.3. CentOS7 取消 SELINUX 修改 /etc/selinux/config 中的 SELINUX=disabled 后重启
1 2 3 4 5 6 7 8 vim /etc/selinux/config # 将 SELINUX=enforcing 修改为: SELINUX=disabled # 重启服务器后查看 SELINUX 状态 [root@hnode3 ~]# sestatus SELinux status: disabled
1.4. 关闭防火墙 CentOS-6 中操作方式:
1 2 service iptables stop service ip6tables stop
CentOS-7 中操作方式:
1 2 3 4 5 6 7 8 9 10 11 12 # 查看防火墙状态 [root@node3 ~]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: active (running) since 二 2021-04-13 16:22:52 CST; 2s ago Docs: man:firewalld(1) Main PID: 4710 (firewalld) CGroup: /system.slice/firewalld.service └─4710 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid # 关闭防火墙 [root@node3 ~]# systemctl stop firewalld.service
1.5. 安装依赖 1 2 yum install -y libtool yum install -y *unixODBC*
1.6 验证指令集是否支持 需要验证当前服务器的 CPU 是否支持 SSE 4.2 指令集,因为向量化执行需要用到这项特性:
1 2 [root@node3 ~]# grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported" SSE 4.2 supported
1.7 下载 rpm 包 1 2 3 4 5 6 7 [root@node3 opt]# mkdir ClickHouse [root@node3 opt]# cd ClickHouse / [root@node3 ClickHouse ]# wget https://repo.yandex.ru/ ClickHouse /rpm/stable/x86_64/ ClickHouse -server-21.4.3.21-2.noarch.rpm [root@node3 ClickHouse ]# wget https://repo.yandex.ru/ ClickHouse /rpm/stable/x86_64/ ClickHouse -common-static-21.4.3.21-2.x86_64.rpm [root@node3 ClickHouse ]# wget https://repo.yandex.ru/ ClickHouse /rpm/stable/x86_64/ ClickHouse -client-21.4.3.21-2.noarch.rpm
2. 单机模式部署 ClickHouse 的安装可以使用 yum在线安装,也可以使用 rpm 离线安装的方式! 具体信息见官网文档:https:// ClickHouse .tech/#quick-start
2.1 安装rpm包 1 2 3 4 5 rpm -ivh ClickHouse -common-static-21.4.3.21-2.x86_64.rpm rpm -ivh ClickHouse -server-21.4.3.21-2.noarch.rpm rpm -ivh ClickHouse -client-21.4.3.21-2.noarch.rpm
2.2 修改端口 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # ClickHouse 默认使用 9000 端口,但是这个端口与 HDFS 发生冲突,所以将其修改为 9977 vim /etc/ ClickHouse -server/config.xml # 1. 将 <tcp_port>9000</tcp_port> 端口修改为 9977 <tcp_port>9977</tcp_port> # 2. listen_host 表示能监听的主机,:: 表示任意主机都可以访问,放开注释 <listen_host>::</listen_host> <!-- <listen_host>::1</listen_host> --> <!-- <listen_host>127.0.0.1</listen_host> -->
2.3 目录结构
目录
说明
/etc/ ClickHouse -server
服务端的配置文件目录,包括全局配置config.xml和用户配置users.xml
/var/lib/ ClickHouse
默认数据存储目录,通常会修改默认路径配置,将数据保存到大容量磁盘挂载路径
/var/log/ ClickHouse -server
默认日志保存目录,通常会修改路径配置将日志保存到大容量磁盘挂载的路径
2.4 配置文件
/etc/security/limits.d/ ClickHouse .conf:文件句柄数量的配置
1 2 3 4 [root@node3 ~]# cat /etc/security/limits.d/ ClickHouse .conf ClickHouse soft nofile 262144 ClickHouse hard nofile 262144
/etc/cron.d/ ClickHouse -server:cron定时任务配置
1 2 3 4 5 6 7 8 9 [root@node3 ~]# cat /etc/cron.d/ ClickHouse -server
/usr/bin/ ClickHouse :主程序的可执行文件
/usr/bin/ ClickHouse client:一个指向 ClickHouse 可执行文件的软链接,供客户端连接使用
/usr/bin/ ClickHouse server:一个指向 ClickHouse 可执行文件的软链接,供服务端启动使用
/usr/bin/ ClickHouse compressor:内置提供的压缩工具,可用于数据的正压反解
2.3 启动 ClickHouse 并验证 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 # 启动服务 [root@node3 ClickHouse ]# systemctl start ClickHouse -server.service # 验证服务是否启动成功 [root@node3 ClickHouse ]# netstat -nltp | grep ClickHouse tcp6 0 0 :::9977 :::* LISTEN 19971/ ClickHouse -se tcp6 0 0 :::8123 :::* LISTEN 19971/ ClickHouse -se tcp6 0 0 :::9004 :::* LISTEN 19971/ ClickHouse -se tcp6 0 0 :::9009 :::* LISTEN 19971/ ClickHouse -se [root@node3 ClickHouse ]# [root@node3 ClickHouse ]# [root@node3 ClickHouse ]# ps -aux | grep ClickHouse clickho+ 19970 0.0 0.0 477408 22868 ? Ss 11:35 0:00 ClickHouse -watchdog --config=/etc/ ClickHouse -server/config.xml --pid-file=/run/ ClickHouse -server/ ClickHouse -server.pid clickho+ 19971 1.2 0.8 1395324 270444 ? SLl 11:35 0:03 /usr/bin/ ClickHouse -server --config=/etc/ ClickHouse -server/config.xml --pid-file=/run/ ClickHouse -server/ ClickHouse -server.pid root 22516 0.0 0.0 112728 1000 pts/0 S+ 11:40 0:00 grep --color=auto ClickHouse # 关闭服务 systemctl stop ClickHouse -server.service
3. 命令行介绍 3.1 基本使用 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 [root@node3 ClickHouse ]# ClickHouse - client ClickHouse client version 21.4 .3 .21 (official build). Connecting to localhost:9977 as user default. Connected to ClickHouse server version 21.4 .3 revision 54447. show databases;┌─name────┐ │ default │ │ system │ └─────────┘ create database db2;use db2; create table test01(id Int8, name String) engine = TinyLog;show tables;┌─name───┐ │ test01 │ └────────┘ insert into test01 values (1 , 'hello' ), (2 , 'world' ), (3 , ' ClickHouse ' );select id, name from test01;┌─id─┬─name───────┐ │ 1 │ hello │ │ 2 │ world │ │ 3 │ ClickHouse │ └────┴────────────┘ select count (* ) as total from test01;┌─total─┐ │ 3 │ └───────┘ quit
3.2 ClickHouse -client 相关参数
参数
说明
--host / -h
服务端的地址,默认值为localhost。如果修改了config.xml内的listen_host,则需要依靠此参数指定服务端地址,例如下面所示的代码。
--port
服务端的TCP端口,默认值为9000。如果要修改config.xml内的tcp_port,则需要使用此参数指定。
--user / -u
登录的用户名,默认值为default。如果使用非default的其他用户名登录,则需要使用此参数指定,例如下面所示代码。关于自定义用户的介绍将在第11章展开。
--password
登录的密码,默认值为空。如果在用户定义中未设置密码,则不需要填写(例如默认的default用户)
--database / -d
登录的数据库,默认值为default。
--query / -q
只能在非交互式查询时使用,用于指定SQL语句。
--multiquery / -n
在非交互式执行时,允许一次运行多条SQL语句,多条语句之间以分号间隔。
--time / -t
在非交互式执行时,会打印每条SQL的执行时间
3.3 查看历史记录 1 cat ~/. ClickHouse -client-history
3.4 导入数据
准备导入的数据文件
1 2 3 4 [root@node3 opt]# cat data.csv 10,name 1,xioaming 2,xiaohong
创建数据表
1 2 use db1; create table test_csv(id Int8, name String) engine = TinyLog;
导入数据
1 cat data.csv | ClickHouse -client --port=9977 --query " INSERT INTO db1.test_csv FORMAT CSV "
确认操作
1 2 3 4 5 6 7 8 9 select * from db1.test_csv;┌─id─┬─name───────┐ │ 10 │ name │ │ 1 │ xioaming │ │ 2 │ xiaohong │ └────┴────────────┘
3.5 导出数据 1 2 3 4 5 6 7 8 [root@node3 opt]# ClickHouse -client --port=9977 --query " select * from db1.test_csv " > /opt/test_csv.csv [root@node3 opt]# [root@node3 opt]# [root@node3 opt]# cat test_csv.csv 10 name 1 xioaming 2 xiaohong
4. 内置工具 ClickHouse 除了提供基础的服务端与客户端程序之外,还内置了 ClickHouse-local 和 ClickHouse-benchmark两种实用工具,现在分别说明它们的作用。
4.1 ClickHouse -local ClickHouse -local 可以独立运行大部分SQL查询,不需要依赖任何 ClickHouse 的服务端程序,它可以理解成是 ClickHouse 服务的单机版微内核,是一个轻量级的应用程序。 ClickHouse-local只能够使用File表引擎,它的数据与同机运行的 ClickHouse 服务也是完全隔离的,相互之间并不能访问。
ClickHouse local是非交互式运行的,每次执行都需要指定数据来源,例如通过stdin标准输入,以echo打印作为数据来源:
完整的参数列表可以通过help查阅。
参数
介绍
-q/--query
待执行的SQL语句,多条语句之间以分号间隔
-S/--structure
表结构的简写方式。
-N/--table
表名称,默认值是table
-if/--input-format
输入数据的格式,默认值是TSV
-f/--file
输入数据的地址,默认值是stdin标准输入
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 echo -e "1\n2\n3" | ClickHouse -local -S "id Int64 " -N "test_table" -q "SELECT id FROM test_table;" echo -e "1\n2\n3" | ClickHouse -local --structure "id Int64 " --table "test_table" -q "SELECT id FROM test_table;" echo -e "1\n2\n3" | ClickHouse -local -q "CREATE TABLE test_table (id Int64 ) ENGINE = File( CSV, stdin );SELECT id FROM test_table;" [root@node3 opt]# ClickHouse -local --file "/opt/data.csv" -S " id Int64,name String" --input-format "CSV" -N "test_table" -q "SELECT * FROM test_table;" 10 name 1 xioaming 2 xiaohong
借助操作系统的命令,实现对系统用户内存用量的查询:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [root@node3 opt]# ps aux | tail -n +2 | awk '{ printf("%s\t%s\n",$1,$4) }' | ClickHouse -local -S "user String,memory Float64" -q "SELECT user,round( sum(memory),2) as memoryTotal FROM table GROUP BY user ORDER BY memoryTotal DESC FORMAT Pretty" ────────────────────────── │ user │ memoryTotal │ ├──────────┼─────────────┤ │ hbase │ 25.4 │ ├──────────┼─────────────┤ │ yarn-ats │ 14.3 │ ├──────────┼─────────────┤ │ ams │ 12 │ ├──────────┼─────────────┤ │ kafka │ 8 │ ├──────────┼─────────────┤ │ spark │ 3.9 │ ├──────────┼─────────────┤ │ infra-s+ │ 3.1 │ ├──────────┼─────────────┤ │ root │ 2.7 │ ├──────────┼─────────────┤ │ yarn │ 2.7 │ ────────────────────────── .....
4.2 ClickHouse -benchmark ClickHouse -benchmark是基准测试的小工具,它可以自动运行SQL查询,并生成相应的运行指标报告。
参数
说明
-i/--iterations
SQL查询执行的次数,默认值是0
-c/--concurrency
同时执行查询的并发数,默认值是1
-r/--randomize
在执行多条SQL语句的时候,按照随机顺序执行
-h/--host
服务端地址,默认值是localhost。 ClickHouse benchmark支持对比测试,此时需要通过此参数声明两个服务端的地址
--confidence
设置对比测试中置信区间的范围,默认值是5(99.5%),它的取值范围有0(80%)、1(90%)、2(95%)、3(98%)、4(99%)和5(99.5%)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 [root@node3 opt]# echo " SELECT * FROM system.numbers LIMIT 100 " | ClickHouse -benchmark --port=9977 -i 5 Loaded 1 queries. Queries executed: 5. localhost:9977, queries 5, QPS: 641.594, RPS: 64159.395, MiB/s: 0.489, result RPS: 64159.395, result MiB/s: 0.489. 0.000% 0.001 sec. 10.000% 0.001 sec. 20.000% 0.001 sec. 30.000% 0.001 sec. 40.000% 0.001 sec. 50.000% 0.001 sec. 60.000% 0.001 sec. 70.000% 0.001 sec. 80.000% 0.001 sec. 90.000% 0.002 sec. 95.000% 0.002 sec. 99.000% 0.002 sec. 99.900% 0.002 sec. 99.990% 0.002 sec.
可以指定多条SQL进行测试,此时需要将SQL语句定义在文件中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [root@node3 opt]# cat multisqls SELECT * FROM system.numbers LIMIT 100; SELECT * FROM system.numbers LIMIT 200; [root@node3 opt]# ClickHouse -benchmark --port=9977 -r 1 -i 5 < /opt/multisqls Loaded 2 queries. Queries executed: 5 (250.000%). localhost:9977, queries 5, QPS: 419.066, RPS: 58669.259, MiB/s: 0.448, result RPS: 58669.259, result MiB/s: 0.448. 0.000% 0.002 sec. 10.000% 0.002 sec. 20.000% 0.002 sec. 30.000% 0.002 sec. 40.000% 0.002 sec. 50.000% 0.002 sec. 60.000% 0.002 sec. 70.000% 0.002 sec. 80.000% 0.002 sec. 90.000% 0.004 sec. 95.000% 0.004 sec. 99.000% 0.004 sec. 99.900% 0.004 sec. 99.990% 0.004 sec.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 [root@node3 opt]# ClickHouse -benchmark -h node3 --port=9977 -h node3 --port=9977 -r 1 -i 5 < /opt/multisqls Loaded 2 queries. Queries executed: 5 (250.000%). node3:9977, queries 2, QPS: 620.279, RPS: 93041.864, MiB/s: 0.710, result RPS: 93041.864, result MiB/s: 0.710. node3:9977, queries 3, QPS: 534.366, RPS: 71248.834, MiB/s: 0.544, result RPS: 71248.834, result MiB/s: 0.544. 0.000% 0.002 sec. 0.002 sec. 10.000% 0.002 sec. 0.002 sec. 20.000% 0.002 sec. 0.002 sec. 30.000% 0.002 sec. 0.002 sec. 40.000% 0.002 sec. 0.002 sec. 50.000% 0.002 sec. 0.002 sec. 60.000% 0.002 sec. 0.002 sec. 70.000% 0.002 sec. 0.002 sec. 80.000% 0.002 sec. 0.003 sec. 90.000% 0.002 sec. 0.003 sec. 95.000% 0.002 sec. 0.003 sec. 99.000% 0.002 sec. 0.003 sec. 99.900% 0.002 sec. 0.003 sec. 99.990% 0.002 sec. 0.003 sec. No difference proven at 99.5% confidence
5. JDBC 连接
添加依赖
1 2 3 4 5 6 <dependency > <groupId > ru.yandex. ClickHouse </groupId > <artifactId > ClickHouse -jdbc</artifactId > <version > 0.3.0</version > </dependency >
URL
单节点:JDBC URL 为 jdbc: ClickHouse ://<host>:<port>[/<database>]
高可用:jdbc: ClickHouse ://<firsthost>:<port>,<secondhost>:<port>[,…]/<database>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 import java.sql.*;public class JDBCTest { public static void main (String[] args) { try { Class.forName("ru.yandex. ClickHouse . ClickHouse Driver" ); String url="jdbc: ClickHouse ://node3:8123/db1" ; String user="default" ; String password="" ; Connection con = DriverManager.getConnection(url,user,password); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("select * from db1.test_csv" ); while (rs.next()){ System.out.println(rs.getInt(1 ) +"-" +rs.getString(2 )); } } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } } } 10 -name1 -xioaming2 -xiaohong
3. 集群模式部署 3.1 zookeeper 安装 ClickHouse 集群模式部署需要依赖 zookeeper,需要把 zookeeper 预先安装。
这里不做 zookeeper 安装的介绍,不知道怎么安装可以看这个文档:https://www.hnbian.cn/posts/3f857bc8.html#toc-heading-11
这里已经部署过了 zookeeper 环境如下:
节点
端口
node1
2181
node2
2181
node3
2181
3.2 分发并安装rpm包 我准备了三台服务器,已经安装了一台,其他两台服务器也都需要安装 ClickHouse
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [root@node3 opt]# cd ClickHouse / [root@node3 ClickHouse ]# [root@node3 ClickHouse ]# ll -rw-r--r-- 1 root root 54368 4月 12 23:41 ClickHouse -client-21.4.3.21-2.noarch.rpm -rw-r--r-- 1 root root 128449273 4月 12 23:41 ClickHouse -common-static-21.4.3.21-2.x86_64.rpm -rw-r--r-- 1 root root 77604 4月 12 23:41 ClickHouse -server-21.4.3.21-2.noarch.rpm [root@node3 ClickHouse ]# cd .. [root@node3 opt]# scp -r ClickHouse / node1:/opt/ ... [root@node3 opt]# [root@node3 opt]# scp -r ClickHouse / node2:/opt/ ... rpm -ivh ClickHouse -common-static-21.4.3.21-2.x86_64.rpm rpm -ivh ClickHouse -server-21.4.3.21-2.noarch.rpm rpm -ivh ClickHouse -client-21.4.3.21-2.noarch.rpm
3.2 修改配置文件config.xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # 在单节点部署中修改了config.xml 文件中的端口号, # 将这个文件分发到其余 ClickHouse 节点中 scp -r /etc/ ClickHouse -server/config.xml node1:/etc/ ClickHouse -server/ scp -r /etc/ ClickHouse -server/config.xml node2:/etc/ ClickHouse -server/ vim /etc/ ClickHouse -server/config.xml 先修改 tcp_port 为 9977, 因为这个端口和 HDFS 的冲突了 <tcp_port>9977</tcp_port> listen_host 表示能监听的主机,:: 表示任意主机都可以访问 <listen_host>::</listen_host> <!-- <listen_host>::1</listen_host> --> <!-- <listen_host>127.0.0.1</listen_host> --> 所有节点同步: scp -r /etc/ ClickHouse -server/config.xml bigdata04:/etc/ ClickHouse -server/ scp -r /etc/ ClickHouse -server/config.xml bigdata05:/etc/ ClickHouse -server/
3.3 在四台机器的etc目录下新建metrika.xml文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 vim /etc/metrika.xml <yandex > < ClickHouse _remote_servers> < ClickHouse _4shards_1replicas> <shard > <internal_replication > true</internal_replication > <replica > <host > node1</host > <port > 9977</port > </replica > </shard > <shard > <replica > <internal_replication > true</internal_replication > <host > node2</host > <port > 9977</port > </replica > </shard > <shard > <internal_replication > true</internal_replication > <replica > <host > node3</host > <port > 9977</port > </replica > </shard > </ ClickHouse _4shards_1replicas> </ ClickHouse _remote_servers> <zookeeper-servers > <node index ="2" > <host > bigdata02</host > <port > 2181</port > </node > <node index ="3" > <host > bigdata03</host > <port > 2181</port > </node > <node index ="4" > <host > bigdata04</host > <port > 2181</port > </node > </zookeeper-servers > <macros > <replica > bigdata02</replica > </macros > <networks > <ip > ::/0</ip > </networks > < ClickHouse _compression> <case > <min_part_size > 10000000000</min_part_size > <min_part_size_ratio > 0.01</min_part_size_ratio > <method > lz4</method > </case > </ ClickHouse _compression> </yandex >
需要根据不同的机器做不同的修改。 所有节点同步:
1 2 scp -r /etc/metrika.xml node1:/etc/ scp -r /etc/metrika.xml node2:/etc/
3.4 启动 1 2 3 4 5 6 7 8 9 10 11 # 先启动 zookeeper zkServer.sh start # 启动服务端: nohup ClickHouse -server --config-file=/etc/ ClickHouse -server/config.xml 1> ~/logs/ ClickHouse _std.log 2>~/logs/ ClickHouse _err.log & # 检查启动是否OK: netstat -nltp | grep ClickHouse # 启动客户端: ClickHouse -client --host=... --port=... --user=... --password=... -m
客户端命令参数解释: username:用户名 password:密码 ip:服务器IP port:端口 -m:允许多行查询
启动本地多行查询客户端:
1 2 ClickHouse -client --host=localhost --port=9977 -m ClickHouse -client --host=bigdata02 --port=9977 --user=bigdata --password=bigdata -m
3.5 检查进程 1 ps -aux | grep ClickHouse
4. 版本升级 在使用离线RPM安装包安装后,可以直接通过rpm命令升级:
在升级的过程中,原有的config.xml等配置均会被保留。基于其他安装方法的升级方案,请参阅官方手册。
4. 卸载 ClickHouse 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 # 查询是否安装 ClickHouse : rpm -qa | grep ClickHouse # 卸载 ClickHouse : rpm -e ClickHouse -client-20.5.4.40-2.noarch --nodeps rpm -e ClickHouse -server-20.5.4.40-2.noarch --nodeps rpm -e ClickHouse -common-static-20.5.4.40-2.x86_64 --nodeps # 删除数据目录: rm -rf /var/lib/ ClickHouse # 删除集群配置文件: rm -rf /etc/metrika.xml # 删除配置文件: rm -rf /etc/ ClickHouse -* # 删除日志文件: rm -rf /var/log/ ClickHouse -server # 删除 zookeeper 上 ClickHouse 的数据: rmr / ClickHouse # 也可以进行全局寻找:然后执行删除操作 find / -name ' ClickHouse '
5. ClickHouse 的 Client 参数介绍
参数
描述
–host, -h
目标服务器名,默认为 localhost
–port
目标端口,默认为 9000
–user, -u
连接用户,默认为 default
–password
连接用户密码,默认为空字符串
–query, -q
非交互模式下执行的命令
–database, -d
当前操作的数据库,默认选择配置文件配置的值(默认为 default 库)
–multiline, -m
如果设定,允许多行查询
–multiquery, -n
如果指定,允许处理由分号分隔的多个查询。只有在非交互式模式工作。
–format, -f
使用指定的默认格式输出结果
–vertical, -E
如果指定,默认使用垂直格式输出结果,等同于 –format=Vertical。 在这种格式中,每个值可在单独的行上,显示宽表时很有用。
–time, -t
如果指定,在 stderr 中输出查询执行时间的非交互式模式下。
–stacktrace
如果指定,如果发生异常,也会输出堆栈跟踪。
–config-file
配置文件的名称,额外的设置或改变了上面列出的设置默认值。
默认情况下,配置文件的搜索顺序如下:
1 2 3 ./ ClickHouse -client.xml ~/. ClickHouse -client/config.xml /etc/ ClickHouse -client/config.xml
6. 设置用户和密码 进入到配置文件目录,修改配置配置文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 vim /etc/ ClickHouse -server/users.xml 系统默认使用 default 用户登录 无密码。 现在我们配置用户 bigdata 密码为 bigdata 配置一个用户:你配置的 bigdata 就是用户名, <password> 这个标签中的值,就是密码 <bigdata> <password>bigdata</password> <networks incl="networks" replace="replace"> <ip>::/0</ip> </networks> <profile>default</profile> <quota>default</quota> </bigdata>
所有节点同步:
1 2 3 4 5 scp -r /etc/ ClickHouse -server/users.xml node1:/etc/ ClickHouse -server/ scp -r /etc/ ClickHouse -server/users.xml node2:/etc/ ClickHouse -server/ # 启动客户端连接: ClickHouse -client --host=bigdata02 --port=9977 --user=bigdata --password=bigdata -m
8. 注意事项 ClickHouse : 每个节点在安装的时候,都是独立的。 每个节点的 ClickHouse 都是单独的服务器在运行,在有需要的时候,可以通过配置文件,把他们联合起来变成一个集群。甚至还可以,把你准备的所有的服务器,配置成多个集群。就算你配置成集群了,每个服务器依然还是单独运行的。
如果你创建了一张表,这张表的引擎是分布式的引擎,那么这个表所存储在那个集群里面的那个集群里面的机器,就是一个集群了。每个 ClickHouse 中的部分表是单机的, 部分表是分布式的。 ClickHouse 既是单独运行的,游离于集群之外,被包含在集群之类的表:分为单机的表和分布式的表