clickhouse集群安装干货多

clickhouse可以单机部署,创建本地表,这个时候不需要zookeeper协助。如果要创建分布式表就需要安装zookeeper集群。zookeeper下载地址 https://zookeeper.apache.org/releases.html 下载版本在3.6.1以上。解压后要进行设置,集群配置的话,默认配置文件没有那一段如下:

server.1=work228:2182:3182
server.2=work229:2182:3182
server.3=work230:2182:3182

这段是配置主机IP地址和短号,server后面的数字是指定那台主机。每台主机需要新建myid文件,里面需要输入IP地址所对应的数字。

接下来安装clickhouse,安装方式直接使用yum install

sudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG
sudo yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/clickhouse.repo
sudo yum install clickhouse-server clickhouse-client

sudo /etc/init.d/clickhouse-server start

在启动前,我们要进行集群配置。默认安装好的配置在/etc/clickhouse-server/,users.xml包含了访问控制,比如允许那些用户可以访问,那些IP地址可访问。我们更多需要对config.xml里面进行调整,比如数据和日志文件等等的路径。

<zookeeper incl="zookeeper-servers" optional="true" /> 如果有incl属性,节点内的内容不会生效,默认会在metrika.xml查找,默认路径是/etc/metrika.xml,如果想改变路径需要添加如下属性

<include_from>/etc/clickhouse-server/metrika.xml</include_from>

在metrika.xml建立3分配1副本的配置,这个需要三台机器。(这个分片数和副本数有关)

<!-- 集群配置 -->
 

<yandex>
    <clickhouse_remote_servers>
        <!-- config.xml里面的名称和节点名称要一致 -->
        <ckcluster_3shards_1replicas>
            <shard>
                <!-- 自动复制稳定性好 -->
                <internal_replication>true</internal_replication>
                <replica>
                    <host>work228</host>
                    <port>9000</port>
                </replica>
            </shard>
            <shard>
                <replica>
                <internal_replication>true</internal_replication>
                    <host>work229</host>
                    <port>9000</port>
                </replica>
            </shard>
            <shard>
                <internal_replication>true</internal_replication>
                <replica>
                    <host>work230</host>
                    <port>9000</port>
                </replica>
            </shard>
        </ckcluster_3shards_1replicas>
    </clickhouse_remote_servers>
    <zookeeper>
        <node index="1">
            <host>work228</host>
            <port>2181</port>
        </node>
        <node index="2">
            <host>work229</host>
            <port>2181</port>
        </node>
        <node index="3">
            <host>dwork230</host>
            <port>2181</port>
        </node>
    </zookeeper>
    <macros>
        <!-- 这里是设置分片副本变量在创建表语句中配合使用 {shard} {replica} -->
        <shard></shard>
        <replica></replica>
    </macros>
    <!-- 数据压缩算法 -->
    <compression incl="clickhouse_compression">
        <!- - Set of variants. Checked in order. Last matching case wins. If nothing         matches, lz4 will be used. - ->
        <case>

            <!- - Conditions. All must be satisfied. Some conditions may be omitted. - ->
            <min_part_size>10000000000</min_part_size>        <!- - Min part size in bytes. - ->
            <min_part_size_ratio>0.01</min_part_size_ratio>   <!- - Min size of part relative to whole table size. - ->

            <!- - What compression method to use. - ->
            <method>zstd</method>
        </case>
    </compression>
</yandex>

配置文件内容修改后,如果没有错误会自动加载生效。

大家一定要去理解shard和replica,distrbute查询规则是会去shard里面取一个副本查询后进行合并得出结果,配置副本一定要注意不然结果并集会有重复数据。

建议大家把/var/lib下面的配置信息放到其它盘,方便迁移。

最后启动服务

systemctl start clickhouse-server

部署过程遇到的问题:

1、code=exited, status=232/ADDRESS_FAMILIES

出现问题第一时间查看日志,去看日志没有,后来再github有人说账户问题,后面我就把日志文件夹chown clickhouse:clickhouse -R log/,重启有日志,之后的问题都是看日志。这个问题是因为安装后把数据文件什么的都迁移了,所属用户组都变了,把clickhouse下面的所有文件夹都成 chown -R clickhouse:clickhouse就行了。

2、Include not found: networks 

这个地方原因就是一个是IP地址问题,默认是IPV6的写法。IPV4应该用0.0.0.0。我出现是因为没有在user.xml上加include from.以为在config.xml加了就可以了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值