ClickHouse 系列教程 2. 离线部署安装介绍


1. ClickHouse 安装准备工作

1.1. 关于版本和系统的选择

操作系统:CentOS Linux release 7.6.1810 (Core)

ClickHouse : 21.4.3

1.2 CentOS7 打开文件数限制

在 /etc/security/limits.conf 这个文件的末尾加入一下内容:

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 这个文件的末尾加入一下内容:

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 查看设置结果

[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 后重启

vim /etc/selinux/config

# 将 SELINUX=enforcing 修改为:
SELINUX=disabled

# 重启服务器后查看 SELINUX 状态
[root@hnode3 ~]# sestatus
SELinux status:   disabled

1.4. 关闭防火墙

CentOS-6 中操作方式:

service iptables stop
service ip6tables stop

CentOS-7 中操作方式:

# 查看防火墙状态
[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. 安装依赖

yum install -y libtool
yum install -y *unixODBC*

1.6 验证指令集是否支持

需要验证当前服务器的 CPU 是否支持 SSE 4.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 包

[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包

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 修改端口


#  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:文件句柄数量的配置
[root@node3 ~]# cat /etc/security/limits.d/ ClickHouse .conf
 ClickHouse     soft    nofile    262144
 ClickHouse     hard    nofile    262144
# 该配置也可以通过config.xml的max_open_files修改
  • /etc/cron.d/ ClickHouse -server:cron定时任务配置
# 用于恢复因异常原因中断的 ClickHouse 服务进程
[root@node3 ~]# cat /etc/cron.d/ ClickHouse -server
#*/10 * * * * root (which service > /dev/null 2>&1 && (service  ClickHouse -server condstart ||:)) || /etc/init.d/ ClickHouse -server condstart > /dev/null 2>&1

# 在默认的情况下,
# 每隔10秒就会使用condstart尝试启动一次 ClickHouse 服务,
# condstart命令的是检查 ClickHouse 服务状态,
# 如果 ClickHouse 服务正在运行,则跳过;如果没有运行,则通过start启动
  • /usr/bin/ ClickHouse :主程序的可执行文件
  • /usr/bin/ ClickHouse client:一个指向 ClickHouse 可执行文件的软链接,供客户端连接使用
  • /usr/bin/ ClickHouse server:一个指向 ClickHouse 可执行文件的软链接,供服务端启动使用
  • /usr/bin/ ClickHouse compressor:内置提供的压缩工具,可用于数据的正压反解

2.3 启动 ClickHouse 并验证

# 启动服务
[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 基本使用

-- 启动  ClickHouse  命令行
[root@node3  ClickHouse ]#  ClickHouse -client --host=localhost --port=9977
 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;

-- 切换库 , 默认使用 default
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 │
└───────┘

-- 退出  ClickHouse  命令行
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 查看历史记录

cat ~/. ClickHouse -client-history

3.4 导入数据

  1. 准备导入的数据文件
[root@node3 opt]# cat data.csv
10,name
1,xioaming
2,xiaohong
  1. 创建数据表
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. 确认操作
-- 查询数据表看数据是否导入成功

select * from db1.test_csv;

┌─id─┬─name───────┐
│ 10 │ name       │
│  1 │ xioaming   │
│  2 │ xiaohong   │
└────┴────────────┘

3.5 导出数据

# 导入数据
[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打印作为数据来源:

  • ClickHouse local 参数简介:

    完整的参数列表可以通过help查阅。

参数 介绍
-q/--query 待执行的SQL语句,多条语句之间以分号间隔
-S/--structure 表结构的简写方式。
-N/--table 表名称,默认值是table
-if/--input-format 输入数据的格式,默认值是TSV
-f/--file 输入数据的地址,默认值是stdin标准输入
# 使用 -S -H 简写 定义表结构并查询数据
echo -e "1\n2\n3" |  ClickHouse -local -S "id Int64 " -N "test_table" -q "SELECT id FROM test_table;"

# 使用 --structure  --table 定义表结构并查询数据 
echo -e "1\n2\n3" |  ClickHouse -local --structure "id Int64 " --table "test_table" -q "SELECT id FROM test_table;"

# 使用DDL 定义表结构并查询数据
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
  • 借助操作系统的命令,实现对系统用户内存用量的查询:
[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查询,并生成相应的运行指标报告。

  • 参数说明

    完整的参数列表,可以通过help查阅。

参数 说明
-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%)。
  • 使用示例
[root@node3 opt]# echo " SELECT * FROM system.numbers LIMIT 100 " |  ClickHouse -benchmark  --port=9977  -i 5
# 1个查询测试
Loaded 1 queries.

# 参数该查询会执行5次:
Queries executed: 5.

# 给出 包含QPS、RPS等指标信息的报告
# QPS = queries per second = req/sec = 请求数/秒
# RPS = requests per second = 并发数/平均响应时间
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. 将测试 SQL 写进文件中

[root@node3 opt]# cat multisqls
SELECT * FROM system.numbers LIMIT 100;
SELECT * FROM system.numbers LIMIT 200;

# 2. 执行测试
[root@node3 opt]#  ClickHouse -benchmark --port=9977 -r 1 -i 5 < /opt/multisqls
# 2 个查询测试
Loaded 2 queries.

# 查询会执行5次:
Queries executed: 5 (250.000%).
# 给出 包含QPS、RPS等指标信息的报告
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.
  • 指定多个服务器测试相同语句
# 使用h参数指定了两个相同的服务地址(在真实场景中应该声明两个不同的服务),基准测试会分别执行2次,生成相应的指标报告:

[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.

# 在对比测试中, ClickHouse benchmark会通过抽样的方式比较两组查询指标的差距,在默认的情况下,置信区间为99.5%:
No difference proven at 99.5% confidence

5. JDBC 连接

  1. 添加依赖
<!-- https://mvnrepository.com/artifact/ru.yandex. ClickHouse / ClickHouse -jdbc -->
<dependency>
    <groupId>ru.yandex. ClickHouse </groupId>
    <artifactId> ClickHouse -jdbc</artifactId>
    <version>0.3.0</version>
</dependency>
  1. URL

单节点:JDBC URL 为 jdbc: ClickHouse ://<host>:<port>[/<database>]

高可用:jdbc: ClickHouse ://<firsthost>:<port>,<secondhost>:<port>[,…]/<database>

import java.sql.*;

public class JDBCTest {
    public static void main(String[] args) {
        //初始化驱动
        try {
            Class.forName("ru.yandex. ClickHouse . ClickHouse Driver");
            // url
            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-name
1-xioaming
2-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

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

# 分别在 node1、node2 安装 rpm 包

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

# 在单节点部署中修改了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 的冲突了
9977
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文件

vim /etc/metrika.xml

<yandex>
  < ClickHouse _remote_servers>
    <!-- 3分片1副本 -->
    < 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 自动同步 -->
  <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若省略,则建复制表时每个分片需指定zookeeper路径及副本名称,同一分片
  上路径相同,副本名称不同;若不省略需每个分片不同配置 -->
  <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>

需要根据不同的机器做不同的修改。
所有节点同步:

scp -r /etc/metrika.xml node1:/etc/
scp -r /etc/metrika.xml node2:/etc/

3.4 启动

# 先启动 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:允许多行查询

启动本地多行查询客户端:

 ClickHouse -client --host=localhost --port=9977 -m
 ClickHouse -client --host=bigdata02 --port=9977 --user=bigdata --password=bigdata -m

3.5 检查进程

ps -aux | grep  ClickHouse 

4. 版本升级

在使用离线RPM安装包安装后,可以直接通过rpm命令升级:

#cd/chbase/setup
#rpmUvh./*
.rpmPreparing...
#######################[100%]
……

在升级的过程中,原有的config.xml等配置均会被保留。基于其他安装方法的升级方案,请参阅官方手册。

4. 卸载 ClickHouse

# 查询是否安装  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 配置文件的名称,额外的设置或改变了上面列出的设置默认值。

默认情况下,配置文件的搜索顺序如下:

./ ClickHouse -client.xml
~/. ClickHouse -client/config.xml
/etc/ ClickHouse -client/config.xml

6. 设置用户和密码

进入到配置文件目录,修改配置配置文件:

vim /etc/ ClickHouse -server/users.xml
系统默认使用 default 用户登录 无密码。 现在我们配置用户 bigdata 密码为 bigdata
配置一个用户:你配置的 bigdata 就是用户名,  这个标签中的值,就是密码


bigdata

::/0

default
default

所有节点同步:

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 既是单独运行的,游离于集群之外,被包含在集群之类的表:分为单机的表和分布式的表


文章作者: hnbian
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 hnbian !
评论
 上一篇
ClickHouse系列教程 3. 架构与组件介绍 ClickHouse系列教程 3. 架构与组件介绍
1. 集群结构ClickHouse 采用了 Multi Master 多主架构,集群中的每个节点角色对等,客户端访问任意一个节点都能得到相同的效果。 多主架构中每个节点对等的角色使系统架构变得更加简单,不用再区分主控节点、数据节点和计算节点
2021-04-17
下一篇 
Iterm2 快捷键记录 Iterm2 快捷键记录
table th:first-of-type { width: 40%; } table th:nth-of-type(2) { width: 40%; } 1. 光标控制 快捷键 功能 光标移动到行首 ct
2021-04-09
  目录