目录
1.clickhouse中文文档地址
2.centos安装部署
2.1采用tgz的方式安装
2.2修改配置文件
2.3修改数据目录
2.4创建角色和目录
3 集群安装
3.1配置文件修改
3.2启动zookeeper
3.3启动clickhouse-server
3.4任意节点连接clickhouse
3.5查看集群
3.6建库
3.7查看数据库
3.8创建本地表
3.9创建分布式表
1.clickhouse中文文档地址
ClickHouse教程 | ClickHouse Docs
2.centos安装部署
2.1采用tgz的方式安装
官网上安装部署有比较详细的说明,具体文档地址如下,支持deb、rpm、tgz、docker等安装部署方式
https://clickhouse.com/docs/zh/getting-started/install/
tgz包下载地址:
https://packages.clickhouse.com/tgz/
https://github.com/ClickHouse/ClickHouse/releases
tgz包上传到同一个目录下,执行以下操作
tar -zxvf clickhouse-common-static-21.1.9.41.tgz -C /opt/clickhouse/tar -zxvf clickhouse-common-static-dbg-21.1.9.41.tgz -C /opt/clickhouse/tar -zxvf clickhouse-server-21.1.9.41.tgz -C /opt/clickhouse/tar -zxvf clickhouse-client-21.1.9.41.tgz -C /opt/clickhouse/sh doinst.sh
2.2修改配置文件
vi /etc/clickhouse-server/config.d/listen.xml<listen_host>0.0.0.0</listen_host>
vim /etc/clickhouse-server/config.xml<!-- <listen_host>::</listen_host> --><listen_host>0.0.0.0</listen_host><tcp_port>9002</tcp_port>
启动:
systemctl start clickhouse-server
登录:
clickhouse-client --port 9002 -m --password root
密码”root”为安装时设置的密码
2.3修改数据目录
如果后期需要修改,可按照此步骤执行。
配置文件 config.xml
clickhouse默认数据目录在 /var/lib/clickhouse, 一般分区空间有限,需要修改。
只要停止数据库之后移走该目录再软连接回原地址,即可不修改config.xml实现对数据目录的修改。
#先停库sudo clickhouse stopsudo mkdir -p /data01/ch/#权限一定要修改否则没权限就启动不了sudo chown -R clickhouse:clickhouse /data01/chsudo mv /var/lib/clickhouse /data01/ch/#建立软连接sudo ln -s /data01/ch/clickhouse /var/lib/clickhousesudo chown -R clickhouse:clickhouse /var/lib/clickhousesudo ls -l /var/lib/clickhouse#启动sudo clickhouse start
2.4创建角色和目录
创建角色
创建一个角色acaidb_rw, 该角色针对数据库acaidb具备读写权限。
CREATE ROLE acaidb_rw;
GRANT SELECT, INSERT, ALTER UPDATE, ALTER DELETE ON acaidb.* TO acaidb_rw;
如果让一个角色只允许select,不允许修改数据,下面的语句就可以。
CREATE ROLE acaidb_read;
GRANT SELECT ON acaidb.* TO acaidb_read;
创建普通账户并赋权
我们分别创建账户reader和writer,然后把只读角色ro分配给reader,把读写角色分配给writer。这样,reader拥有只读权限,writer拥有读写权限。 新建一个数据库用户acai,并设置密码(将下文的<你的密码>替换)。并给用户acai赋予读写权限角色acaidb_rw 。
CREATE USER IF NOT EXISTS acai IDENTIFIED WITH sha256_password BY '<你的密码>';GRANT acaidb_rw TO acai;
使用下列命令访问clickhouse数据,show databases得到acaidb,说明我们成功了。因为acai用户只能访问acaidb。
# clickhouse-client -m -u acai --password '<你的密码>' --query 'show databases;'
3 集群安装
3.1配置文件修改
添加:
<test_cluster_three_shards_internal_replication><shard><internal_replication>true</internal_replication><replica><host>master</host><port>9002</port></replica></shard><shard><internal_replication>true</internal_replication><replica><host>slave1</host><port>9002</port></replica></shard><shard><internal_replication>true</internal_replication><replica><host>slave2</host><port>9002</port></replica></shard></test_cluster_three_shards_internal_replication><zookeeper><node><host>master</host><port>2181</port></node><node><host>slave1</host><port>2181</port></node><node><host>slave2</host><port>2181</port></node></zookeeper><macros><shard>01</shard><replica>master-replica01</replica></macros>
3.2启动zookeeper
见文档《hbase文档》
3.3启动clickhouse-server
systemctl start clickhouse-server
3.4任意节点连接clickhouse
clickhouse-client --host=slave2 --port=9002 -m --password root
3.5查看集群
select cluster,shard_num,replica_num,host_name,port,user,is_local from system.clusters;Select version();
3.6建库
3.7查看数据库
Show databases;Show create database test01;
3.8创建本地表
3.9创建分布式表
db:数据库名。
local_table_name:对应的已经创建的本地表表名。
shard table:同上,对应的已经创建的本地表表名。
sharding_key:分片表达式。可以是一个字段,例如user_id(integer类型),通过对余数值进行取余分片;也可以是一个表达式,例如rand(),通过rand()函数返回值/shards总权重分片;为了分片更均匀,可以加上hash函数,如intHash64(user_id)
参考:https://blog.csdn.net/mnasd/article/details/127648739