clickhouse分布式集⼀.环境准备:
主机系统应⽤ip
ckh-01centos 8jdk,zookeeper,clickhouse192.168.205.190
ckh-02centos 8jdk,zookeeper,clickhouse192.168.205.191
ckh-03centos 8jdk,zookeeper,clickhouse192.168.205.192
ckh-04centos 8jdk,clickhouse192.168.205.193
ckh-05centos 8jdk,clickhouse192.168.205.194
ckh-06centos 8jdk,clickhouse192.168.205.195
java环境和zookeeper集安装省略
各节点安装clickhouse
yum -y install yum-utils
rpm --import h/CLICKHOUSE-KEY.GPG
yum-config-manager --add-repo h/rpm/stable/x86_64
dnf -y install clickhouse-server clickhouse-client
⼆.集配置:(这⾥⽤原有配置⽂件/etc/l)
在配置⽂件/etc/l到
<!-- <listen_host>::</listen_host> -->取消掉注释
<listen_host>::</listen_host>
使⽤3节点2副本6台服务器配置(以⼀台为例⼦,配置完成拷贝⾄其他节点。然后将副本改成唯⼀)
在<remote_servers></remote_servers>标签中加⼊如下配置
<!--<perftest_3shards_1replicas>可以改成⾃定义名-->
<perftest_3shards_1replicas>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>ckh-01</host>
<port>9000</port>
<user>admin</user>
<password>111111</password>
</replica>
<replica>
<host>ckh-02</host>
<port>9000</port>
<user>admin</user>
<password>111111</password>
</replica>
</shard>
<shard>
centos安装vim命令<internal_replication>true</internal_replication>
<replica>
<host>ckh-03</host>
<port>9000</port>
<user>admin</user>
<password>111111</password>
</replica>
<replica>
<host>ckh-04/host>
<port>9000</port>
<user>admin</user>
<password>111111</password>
</replica>
</shard>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>ckh-05</host>
<port>9000</port>
<user>admin</user>
<password>111111</password>
</replica>
<replica>
<host>ckh-06</host>
<port>9000</port>
<user>admin</user>
<password>111111</password>
</replica>
</shard>
</perftest_3shards_1replicas>
将如下配置加⼊到<yandex></yandex>标签中
<!--zookeeper相关配置-->
<zookeeper>
<node>
<host>ckh-01</host>
<port>2181</port>
</node>
<node>
<host>ckh-02</host>
<port>2181</port>
</node>
<node >
<host>ckh-03</host>
<port>2181</port>
</node>
</zookeeper>
<macros>
<shard>01</shard>
<replica>ckh-01-01</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>
在<macros></macros>标签中接⼊对应分⽚和副本信息,确保每台副本唯⼀
主机名分⽚副本(主机名+副本编号)
ckh-0101ckh-01-01
ckh-0201ckh-02-02
ckh-0302ckh-03-01
ckh-0402ckh-04-02
ckh-0503ckh-05-01
ckh-0603ckh-06-02
修改以下⽂件,以便在⼀个节点上执⾏语句其他节点也同步执⾏
vim /etc/l
三:⽤户密码配置
vim /etc/l
如果配置密⽂加密请参照注释说明
clickhouse 默认⽤户为default ⽆密码可以登录,我们可以改成其他⽤户或禁⽤default
在<users></users>标签⾥添加其他⽤户配置
<admin>
<password>111111</password>
<networks incl="networks" replace="replace">
<ip>::/0</ip>
</networks>
<!-- Settings profile for user. -->
<profile>default</profile>
<!-- Quota for user. -->
<quota>default</quota>
</admin>
注 <networks incl="networks" replace="replace"> 此处需要加上 incl="networks" replace="replace"
⾼版本已取消,在使⽤flink运⾏任务时会出现连接clickhouse超时现象
四.进⼊clickhouse-client:(注意如果需要外部访问需要将vim /etc/l配置⽂件listen_host改成如下设置)
各节点启动服务:
systemctl start clickhouse-server
然后连接通过以下命令连接(-m为多⾏命令操作)
clickhouse-client -h 192.168.205.190 --port 9000 -m -u admin --password 111111
查看数据库信息:
show databases;
五.查看集信息(任意⼀节点均可查看):
select * from system.clusters;
-------------------------------------------------------------------------------------------------------------------------------------
创建本地表及分布式表:
在各个节点分表创建数据库test(在⼀个节点执⾏即可)
create database test ON CLUSTER perftest_3shards_1replicas;
下⾯给出ReplicatedMergeTree引擎的完整建表DDL语句。
创建本地表及表引擎
Replicated Table & ReplicatedMergeTree Engines
CREATE TABLE IF NOT EXISTS test.events_local ON CLUSTER perftest_3shards_1replicas ( ts_date Date, ts_date_time DateTime, user_id Int64, event_type String, site_id Int64, groupon_id Int64, category_id Int64, merchandise_id Int6
其中,ON CLUSTER语法表⽰分布式DDL,即执⾏⼀次就可在集所有实例上创建同样的本地表。集标识符{cluster}、分⽚标识符{shard}和副本标识符{replica}来⾃之前提到
过的复制表宏配置,即l中<macros>⼀节的内容,配合ON CLUSTER语法⼀同使⽤,可以避免建表时在每个实例上反复修改这些值。
分布式表及分布式表引擎
Distributed Table & Distributed Engine
ClickHouse分布式表的本质并不是⼀张表,⽽是⼀些本地物理表(分⽚)的分布式视图,本⾝并不存储数据。
⽀持分布式表的引擎是Distributed,建表DDL语句⽰例如下,_all只是分布式表名⽐较通⽤的后缀⽽已。
CREATE TABLE IF NOT EXISTS test.events_all ON CLUSTER perftest_3shards_1replicas AS test.events_local ENGINE = Distributed(perftest_3shards_1replicas,test,events_local,rand());
任意节点插⼊数据:
insert into test.events_all values('2021-03-03','2021-03-03 16:10:00',1,'ceshi1',1,1,1,1,'test1'),('2021-03-03','2021-03-03 16:20:01',2,'ceshi2',2,2,2,2,'test2'),('2021-03-03','2021-03-03 16:30:02',3,'ceshi2',3,3,3,3,'test3'),('2021-03-03','2021-03-03 16:40:03查询各分⽚数据:
select * from test.events_all;
查看副本节点也复制了⼀份同样的数据
-------------------------------------------------------------------------------------clickhouse基本操作:
查询clickhouse集信息
select * from system.clusters;
创建数据库命令(⼀个节点上执⾏,多个节点同时创建)
create database test ON CLUSTER perftest_3shards_1replicas
删除数据库命令(⼀个节点上执⾏,多个节点同时删除)
drop database test ON CLUSTER perftest_3shards_1replicas
删除本地表数据(分布式表⽆法删除表数据)
alter table test.events_local ON CLUSTER perftest_3shards_1replicas delete where 1=1; 1=1表⽰删除所有数据,可以接字段名删除满⾜某个条件的数据
查看zookeeper下⽬录
select * keeper WHERE path='/'
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论