ClickHouse集群的安装

目录

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 stop

sudo mkdir -p /data01/ch/

#权限一定要修改否则没权限就启动不了

sudo chown -R clickhouse:clickhouse /data01/ch

sudo mv /var/lib/clickhouse /data01/ch/

#建立软连接

sudo ln -s /data01/ch/clickhouse /var/lib/clickhouse

sudo chown -R clickhouse:clickhouse /var/lib/clickhouse

sudo 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

  • 18
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奥德彪的蕉

天不生我奥德彪,非洲无人拉香蕉

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值