• ClickHouse集群安装


    前言

    • 目标:ClickHouse单机集群版安装
    • 本文面向ClickHouse初学者
    • 服务器环境 Ubuntu18.04

    集群安装步骤如下:

    1. 安装java
    2. 安装Zookeeper(依赖Java)
    3. 安装单机ClickHouse
    4. 修改ClickHouse配置为集群版
     
     

    安装步骤

    一、安装Java

    在线安装
    sudo apt update
    sudo apt install openjdk-8-jdk
    离线安装

    1、下载安装包:https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html 在当前页面寻找 jdk-8u301-linux-x64.tar.gz 并下载

    2、将文件上传至服务器并解压到指定目录

    tar -zxvf jdk-8u301-linux-x64.tar.gz 
    mkdir /usr/local/src/jdk/ 
    mv jdk1.8.0_301/ /usr/local/src/jdk/jdk1.8

    3、在文件 /etc/profile 中添加环境变量

    export JAVA_HOME=/usr/local/src/jdk/jdk1.8 
    export PATH=$PATH:$JAVA_HOME/bin 
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    4、执行source /etc/profile 使得环境变量生效

    5、使用java -version命令验

    证是否安装成功

    二、安装Zookeeper

    1、下载安装包:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz

    2、将文件上传至服务器指定目录并解压

    # 自定义安装路径为 /usr/local/zookeeper 
    ZK_PATH=/usr/local/zookeeper 
    mkdir -p $ZK_PATH 
    tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz 
    mv apache-zookeeper-3.7.0-bin/* $ZK_PATH 
    # 修改配置 
    cd $ZK_PATH cp conf/zoo_sample.cfg conf/zoo.cfg

    3、修改配置文件内容为如下

    tickTime=2000 
    initLimit=10 
    syncLimit=5 
    # 主要修改dataDir属性 
    dataDir=/data/zookeeper 
    clientPort=2181

    4、启动服务:$ZK_PATH/bin/zkServer.sh start

    5、此后命令如果不需要配置认证则可跳过

    6、进入ZK命令行:$ZK_PATH/bin/zkCli.sh

    7、执行添加用户命令:

    addauth digest username:password 
    setAcl / auth:username:cdrwa
    8、重启zk服务:$ZK_PATH/bin/zkServer.sh restart
     

    三、安装单机ClickHouse

    1、安装CK命令如下,在安装过程中会提示输入默认用户(用户名为default)的密码

    sudo apt-get install apt-transport-https ca-certificates dirmngr 
    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E0C56BD4 
    # 此处使用清华源 加快安装速度 
    echo "deb https://mirrors.tuna.tsinghua.edu.cn/clickhouse/deb/stable/ main/" | sudo tee /etc/apt/sources.list.d/clickhouse.list 
    sudo apt-get update 
    sudo apt-get install -y clickhouse-server clickhouse-client 
    sudo service clickhouse-server start

    2、安装完成进行登录测试:clickhouse-client -u default --password password

    四、修改ClickHouse配置为集群版

    备份默认配置文件:cp /etc/clickhouse-server/config.xml /etc/clickhouse-server/config.xml.bak
    然后编辑默认配置文件  /etc/clickhouse-server/config.xml 并删除集群相关的配置
      • 文件中<remote_servers></remote_servers>标签里的全部内容
      • 文件中<zookeeper></zookeeper>标签里的全部内容
      • 文件中<macros></macros>标签里的全部内容
    添加自定义配置文件:vi /etc/clickhouse-server/config.d/config.xml 内容如下
    <yandex>
        <zookeeper>
            <node index="1">
                <host>此处改为ZK的HOST</host>
                <port>2181</port>
            </node>
            <identity>zk_username:zk_password</identity>
            <session_timeout_ms>600000</session_timeout_ms>
        </zookeeper>
     
        <remote_servers>
            <test>
                <shard>
                    <internal_replication>true</internal_replication>
                    <replica>
                        <host>本机IP</host>
                        <port>9000</port>
                        <user>default</user>
                        <password>password</password>
                    </replica>
                </shard>
            </test>
        </remote_servers>
     
        <networks>
            <ip>::/0</ip>
        </networks>
        
        <macros>
            <shard>01</shard>
            <replica>node1</replica>
        </macros>
    </yandex>
    然后重启CK即可:service clickhouse-server restart

    关键步骤解释

    集群配置文件解释

    zookeeper 配置

      1. 如果Zookeeper为集群版,直接增加node节点即可

    remote_servers 配置

      1. remote_servers下级节点为集群,可配置多个集群
      2. 集群下级节点为分片(shard),可配置多个shard,不同shard不能用同一个ClickHouse实例
      3. 分片下级为副本(replica),可对分片配置多个副本,默认最少0个,不同副本不能用同一个ClickHouse实例
      4. internal_replication 用来控制当数据写入时(必须是Replicated*的表),由分片自己负责副本间的数据复制,否则分布式表的副本数据写入需要由Distributed引擎来负责

    macros 配置

    参数解释 https://stackoverflow.com/questions/68272747/what-is-macros-in-clickhouse-and-what-is-use-of-macros-in-clickhouse

      1. 本质上就是针对当前实例的全局变量的定义,可以被某些地方来引用
      2. 此配置需要在集群中全局唯一
      3. 此处的参数会在创建Replicated*的表时被引用
      4. shard的值为当前节点在在集群中的分片编号,需要在集群中唯一
      5. replica是副本的唯一标识,需要在单个分片的多个副本中唯一
     

    参考文档:

    ClickHouse官方文档:
     
    StackOverFlow关于macros的解释
     
    一本书:
    《ClickHouse原理解析与应用实践》

     
     
     
     
     
     
     
     
  • 相关阅读:
    搜索框的创建
    自定义非等高 Cell
    自定义等高 Cell
    表格多选删除
    聊天布局
    表格编辑
    表格折叠
    tableView 的协议方法
    UITouch
    UIDevice
  • 原文地址:https://www.cnblogs.com/dyfblog/p/15209114.html
Copyright © 2020-2023  润新知