Centos安装ClickHouse21.7.3.14单机&集群&分片集群
[TOC]
Centos安装ClickHouse21.7.3.14单机&集群&分片集群
一、单机安装
1、删除旧的
- 查找rpm包
1 |
|
- 删除
1 |
|
2、下载
1 |
|
3、准备
关闭防火墙
1
2
3systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld关闭 SELINUX
1
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
增加打开文件数和进程数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 查看限制情况
ulimit -a
# 修改配置
vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
vim /etc/security/limits.d/20-nproc.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072安装依赖
1
2
3
4
5
6
7
8
9
10
11
12
13
yum list installed|grep libtool
#-----------------------------------------------------------------------
# libtool-ltdl.x86_64 2.4.2-22.el7_3 @anaconda
#-----------------------------------------------------------------------
yum install -y libtool
yum list installed|grep unixODBC
#-----------------------------------------------------------------------
# freeradius-unixODBC.x86_64 3.0.13-15.el7 @base
# unixODBC.x86_64 2.3.1-14.el7 @base
# unixODBC-devel.x86_64 2.3.1-14.el7 @base
#-----------------------------------------------------------------------
yum install -y *unixODBC*
4、rpm 安装
1 |
|
默认初始密码:直接回车可以没有密码
#———–目录映射—————
bin/ ==> /usr/bin/
conf/ ==> /etc/clickhouse-server/
lib/ ==> /var/lib/clickhouse/
log/ ==> /var/log/clickhouse/
1 |
|
5、start & stop
1 |
|
6、权限管理
默认用户default默认关闭 access_managenment
开放权限管理 通过配置users.xml 将axxess_managenment 改为1,重启服务后生效主要用于控制用户对数据库系统中各种资源的访问和操作权限。当它开启时,意味着用户可以进行诸如创建、修改和删除其他用户、角色,以及管理权限等操作,能够对数据库的访问控制体系进行全面的管理和调整。
当default
用户的access_management
关闭时,若需要进行用户和权限管理操作,通常需要使用具有相应管理权限的其他用户账号登录,或者由管理员为default
用户显式地授予相关权限后再进行操作。
1 |
|
二、副本
1、概念、作用
副本的目的主要是保障数据的高可用性,即使一台 ClickHouse 节点宕机,那么也可以从其他服务器获得相同的数据。
2、配置
启动 zookeeper 集群
在每台机器下的
/etc/clickhouse-server/config.d
目录下创建一个名为metrika.xml
的配置文件, 内容如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17<?xml version="1.0"?>
<yandex>
<zookeeper-servers>
<node index="1">
<host>node01</host>
<port>2181</port>
</node>
<node index="2">
<host>node02</host>
<port>2181</port>
</node>
<node index="3">
<host>node03</host>
<port>2181</port>
</node>
</zookeeper-servers>
</yandex>修改文件组和所属用户(尽量改一下)
1
chown clickhouse:clickhouse /etc/clickhouse-server/config.d/metrika.xml
/etc/clickhouse-server/config.xml
中添加1
2<zookeeper incl="zookeeper-servers" optional="true" />
<include_from>/etc/clickhouse-server/config.d/metrika.xml</include_from>重启clickhouse
1
clickhouse restart
3、验证
clickhouse之间没有优先级互为副本
建表合并树家族 数据复制 | ClickHouse Docs
1 |
|
1 |
|
在一台插入数据后自动同步其他机器,在其他机器也能查询到
1 |
|
三、分片集群
1、概念、作用
- 副本虽然能够提高数据的可用性,降低丢失风险,但是每台服务器实际上必须容纳全量数据,对数据的横向扩容没有解决。
- 要解决数据水平切分的问题,需要引入分片的概念。通过分片把一份完整的数据进行切分,不同的分片分布到不同的节点上,再通过 Distributed 表引擎把数据拼接起来一同使用。
- Distributed 表引擎本身不存储数据,有点类似于 MyCat 之于 MySql,成为一种中间件,通过分布式逻辑表来写入、分发、路由来操作多台节点不同分片的分布式数据。
2、配置
测试:集群及副本规划(2个分片,只有第一个分片有副本)
/etc/clickhouse-server/config.d
目录下创建 metrika-shard.xml
文件
1 |
|
/etc/clickhouse-server/config.xml
中添加
1 |
|
修改文件组和所属用户(尽量改一下)
1 |
|
3、测试
- 会自动同步到其他机器上
- 集群名字要和配置文件中的一致
- 分片和副本名称从配置文件的宏定义中获取
- 可以到 其他机器上查看表是否创建成功
1 |
|
创建 Distribute 分布式表
1 |
|
分布式表不存数据,往本地表写,本地同步
1 |
|
查询分布式表会查到全部数据,每台都一样
查询本地表会发现每台含部分数据起始1,2两台一样(配置的互为副本)
1 |
|