ClickHouse部署全攻略——副本部署

目录

ClickHouse-keeper集群部署方式(不推荐,目前性能较差)

配置集群信息

配置文件中添加keeper_server标签

创建以上配置中keeper服务的快照与日志目录

为keeper server开启端口

重启服务

使用4lw命令查看集群运行状态

安装nc网络工具

查看keeper网络是否正常,如果返回imok表示正常

输出可用于监视集群运行状况的变量列表

输出可用于监视集群运行状况的变量列表

列出服务器和连接客户机的简要详细信息

其他不常用的命令

zookeeper集群部署方式(推荐)

准备工具

上传与解压

修改配置文件

添加集群配置信息(继续修改zoo.cfg配置文件)

配置myid

启动服务

添加开机启动

配置zookeeper信息

使集群支持DDL自动清理

表创建优化参数

修改副本相关配置信息(每台主机)

配置副本信息

配置macros信息

重启服务加载配置

验证

副本建库及表的创建


注:主从部署是基于每台单机的基础上,通过zookeeper负责协调,修改各节点的配置文件得以实现的。因此关于每个节点的部署和基础配置,完全参考单机版即可,以下仅提供有区别的部分内容的介绍。

 

clickhouse的副本不会自动同步新创建的表,即不会同步DDL操作。此问题需要格外注意,当添加表时,需在每个节点上依次创建新表。

ClickHouse的分片、副本等高可用集群部署,可使用自身的keeper实现,亦可使用zookeeper来实现。以下两种方式分别介绍,但推荐使用自身的keeper实现集群部署。

  • 若启用TLS安全通信,此章可仅学习使用,直接跳转至安全配置部分进行配置

ClickHouse-keeper集群部署方式(不推荐,目前性能较差)

配置集群信息

  • 进入配置文件目录,编辑config.xml配置文件
vim /etc/clickhouse-server/config.xml
  • 找到<zookeeper>选项,解除注释并修改zookeeper信息(这里为了与zookeeper区分开来,建议使用9181端口)
     <zookeeper>
        <node>
            <host>big1</host>
            <port>9181</port>
        </node>
        <node>
            <host>big2</host>
            <port>9181</port>
        </node>
        <node>
            <host>big3</host>
            <port>9181</port>
        </node>
    </zookeeper>

配置文件中添加keeper_server标签

  • 如下内容
    <keeper_server>
        <tcp_port>9181</tcp_port>
        <server_id>1</server_id>
        <log_storage_path>/data/clickhouse/coordination/log</log_storage_path>
      <snapshot_storage_path>/data/clickhouse/coordination/snapshots</snapshot_storage_path>

        <coordination_settings>
            <operation_timeout_ms>10000</operation_timeout_ms>
            <session_timeout_ms>30000</session_timeout_ms>
            <raft_logs_level>trace</raft_logs_level>
            <snapshots_to_keep>10</snapshots_to_keep>
        </coordination_settings>

        <raft_configuration>
            <server>
                <id>1</id>
                <hostname>big1</hostname>
                <port>9444</port>
            </server>
            <server>
                <id>2</id>
                <hostname>big2</hostname>
                <port>9444</port>
            </server>
            <server>
                <id>3</id>
                <hostname>big3</hostname>
                <port>9444</port>
            </server>
         </raft_configuration>
    </keeper_server>

  1. 配置介绍
    1. Keeper 配置有以下这些参数:
      1. tcp_port — 客户端连接的端口(应与zookeeper标签的<port>保持一致).
      2. tcp_port_secure — client 和 keeper-server之间的SSL连接的安全端口.
      3. server_id — 唯一的服务器ID, ClickHouse Keeper 集群的每个参与组件都必须有一个唯一的编号(1, 2, 3, 等等).
      4. log_storage_path — 协调日志的路径, 最好存放在不繁忙的机器上 (和ZooKeeper一样).
      5. snapshot_storage_path — 协调快照的路径
    2. <coordination_settings>部分:
      1. operation_timeout_ms — 单个客户端操作的超时时间(ms)(默认值:10000)。
      2. min_session_timeout_ms — 客户端会话的最小超时时间(ms)(默认值:10000)。
      3. session_timeout_ms — 客户端会话最大超时时间(ms)(默认100000)。
      4. dead_session_check_period_ms — ClickHouse Keeper检查死会话并删除它们的频率(毫秒)(默认值:500)。
      5. heart_beat_interval_ms — ClickHouse Keeper的leader发送心跳频率(毫秒)(默认为500)。
      6. election_timeout_lower_bound_ms — 如果follower在此间隔内没有收到leader的心跳,那么它可以启动leader选举(默认为1000).
      7. election_timeout_upper_bound_ms — 如果follower在此间隔内没有收到leader的心跳,那么它必须启动leader选举(默认为2000)。
      8. rotate_log_storage_interval — 单个文件中存储的日志记录数量(默认100000条)。
      9. reserved_log_items — 在压缩之前需要存储多少协调日志记录(默认100000)。
      10. snapshot_distance — ClickHouse Keeper创建新快照的频率(以日志记录的数量为单位)(默认100000)。
      11. snapshots_to_keep — 保留多少个快照(默认值:3)。
      12. stale_log_gap — 当leader认为follower过时并发送快照给follower而不是日志时的阈值(默认值:10000)。
      13. fresh_log_gap — 当节点变成新鲜时的间隔(默认值:200)。
      14. max_requests_batch_size - 发送到RAFT之前的最大批量请求数(默认值:100)。
      15. force_sync — 在每次写入协调日志时是否调用' fsync '(默认值:true)。
      16. quorum_reads — 通过整个RAFT共识以类似的速度执行读请求和写请求(默认值:false)。
      17. raft_logs_level — 关于协调的文本日志级别 (trace, debug, 等等) (默认: system default).
      18. auto_forwarding — 允许将follower的请求转发到leader (默认: true).
      19. shutdown_timeout — 等待内部连接完成并关闭(ms)(默认值:5000)。
      20. startup_timeout — 如果服务器在指定的超时时间内没有连接到其他仲裁参与者,它将终止(ms)(默认值:30000)。
      21. four_letter_word_white_list — 4个字母的白名单列表 (默认: "conf,cons,crst,envi,ruok,srst,srvr,stat,wchc,wchs,dirs,mntr,isro").
    3. 每个<server>的主要参数是:
      1. id — 仲裁中的服务器标识符。
      2. hostname — 放置该服务器的主机名。
      3. port — 服务器监听连接的端口。

创建以上配置中keeper服务的快照与日志目录

mkdir /data/clickhouse/coordination/snapshots -p
mkdir /data/clickhouse/coordination/log
chown clickhouse:clickhouse -R /data/clickhouse

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值