• clickhouse集群部署方法和验证方法


    集群节点信息

    192.168.30.118 

    192.168.30.117

    192.168.30.116

    192.168.30.115

    注意:1个节点,1副本

    1、安装依赖组建JDK

    (1)下载版本:jdk-8u333-linux-x64.tar.gz

    (2)下载连接:https://www.oracle.com/java/technologies/downloads/#java8-linux

    (3)linux中创建目录:/usr/local,将下载的jdk上传到此目录下,并将jdk-8u333-linux-x64重命名为jdk1.8

    mv jdk-8u333-linux-x64 jdk1.8

    (4)解压文件:(把下载的文件上传到服务器再次进行解压)

    tar -zxvf jdk-8u333-linux-x64.tar.gz

    (5)配置环境变量

    vim /etc/profile

    i 是insert 简写,进入编辑输入模式

    / 是可以搜索关键字

    :wq 保存退出

    :q 不保存退出

    :q! 强制退出

    添加如下内容(注意:java_home按照自己的jdk存放目录来放)

    export JAVA_HOME=/root/jdk/jdk1.8.0_333
    export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
    export PATH=$PATH:$JAVA_HOME/bin

    按 Esc 退出编辑模式,输入 :wq 保存并退出

    (6)生效环境变量

    source /etc/profile

    (7)检查是否安装成功

    javac -version
    
    java  -version

     

    2、搭建zookeeper集群

    在这三个节点搭建一个zookeeper集群(如果搭建可以直接忽略这一步),先在一个节点上根据以下配置

    参考安装方法:https://www.cnblogs.com/jiashengmei/p/11991243.html

    最终的zookeeper在zoo.cfg的内容如下,注意:只需要进行3个节点的zookeeper集群配置即可

    dataDir=/data
    dataLogDir=/datalog
    tickTime=2000
    initLimit=5
    syncLimit=2
    autopurge.snapRetainCount=3
    autopurge.purgeInterval=0
    maxClientCnxns=60
    standaloneEnabled=true
    admin.enableServer=true
    clientPort=12181
    
    server.118=192.168.30.118:12888:13888    #12888:13888不用改,改的示例:server.数字=IP:12888:13888,注意此处的数字,最后写在对应IP地址的myid的文件中
    server.117=192.168.30.117:12888:13888
    server.116=192.168.30.116:12888:13888 

    在192.168.30.118服务器上,myid的文件中,添加118

    在192.168.30.117服务器上,myid的文件中,添加117

    在192.168.30.116服务器上,myid的文件中,添加116

    3、安装clickhouse

    安装方式:clickhouse的官网安装方法:https://clickhouse.com/#quick-start

    注意:如下的内容,每个

    开始安装

    sudo apt-get install apt-transport-https ca-certificates dirmngr
    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754
    
    echo "deb https://packages.clickhouse.com/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    #此句是启动clickhouse的服务
    clickhouse-client # or "clickhouse-client --password" if you set up a password.

    验证clickhouse是否安装成功,执行命令

    sudo service clickhouse-server status 

    安装完后的目录,即存放安装后文件的路径:/etc/clickhouse-server

    执行完如上的步骤,则执行如下的命令,查看clickhouse是否部署成功

    //客户端连接,直接在命令行运行即可
    clickhouse-client 

    备注:clickhouse常用的其他命名

    sudo service clickhouse-server start 
    sudo service clickhouse-server restart    #重启clickhouse
    sudo service clickhouse-server status    #查看clickhouse的状态
    sudo service clickhouse-server stop   #停止clickhouse

     集群版的部署

    注意事项:每次修改了配置文件的内容,记得重启clickhouse的服务:systemctl restart clickhouse-server 

    1、进入cd /etc/clickhouse-server目录下,创建touch metrika.xml,再次修改config.xml文件,修改后的内容如下,

    vim config.xml
    <timezone>Asia/Shanghai</timezone>
     <listen_host>0.0.0.0</listen_host>   #在文档中有,此行取消注释即可
    <include_from>/etc/clickhouse-server/metrika.xml</include_from>    #此行在conf文档中没有,需要手动的添加上
    <macros incl="macros" optional="true"/> #此行在conf文档中没有,需要手动的添加上
     <zookeeper>                                #根据zookeeper的配置IP,写在这里即可
            <node index="118">                  #"118"指的是:在zookeeper中的server.118后的数字,server.118=192.168.30.118:12888:13888
                <host>192.168.30.118</host>
                <port>12181</port>                #12181端口是自己给定的,也可用默认的2181
            </node>
            <node index="117">
                <host>192.168.30.117</host>
                <port>12181</port>
            </node>
            <node index="116">
                <host>192.168.30.116</host>
                <port>12181</port>
            </node>
    </zookeeper>

    2、目录cd /etc/clickhouse-server/文件下,手动创建文件:metrika.xml

    vim metrika.xml

    直接复制粘贴如下的内容到metrika.xml文档中即可,注意修改自己的IP地址,端口9000可以不用改,用默认即可

    <yandex>
        <clickhouse_remote_servers>
            <ck_cluster>
    <!--4分片1副本--> <shard> <internal_replication>true</internal_replication> <replica> <host>192.168.30.118</host> <port>9000</port> #注意:若在users.xml中设置了用户和密码,此处要添加<user>test</user><password>123</password> </replica> </shard> <shard> <internal_replication>true</internal_replication> <replica> <host>192.168.30.117</host> <port>9000</port> </replica> </shard> <shard> <internal_replication>true</internal_replication> <replica> <host>192.168.30.116</host> <port>9000</port> </replica> </shard> <shard> <internal_replication>true</internal_replication> <replica> <host>192.168.30.115</host> <port>9000</port> </replica> </shard> </ck_cluster> </clickhouse_remote_servers> <macros>
    <shard>01</shard> #注意:这里的内容,每个服务器的配置文件必须相同,否则复制表将无法操作 <replica>192.168.30.118</replica> #注意:每台服务器的配置文件。写自己的IP地址 </macros> <networks> <ip>::</ip> </networks> <clickhouse_compression> <case> <min_part_size>10000000000</min_part_size> <min_part_size_ratio>0.01</min_part_size_ratio> <method>lz4</method> </case> </clickhouse_compression> </yandex>

    3、若需查看clickhouse的log日志,在config.xml文件中就包含了,比如:

    /var/log/clickhouse-server/clickhouse-server.log
    /var/log/clickhouse-server/clickhouse-server.err.log

    4、进行完如上的配置,重新启动clickhouse,再次查看clickhouse是否启动成功

    sudo service clickhouse-server restart    #重启clickhouse
    sudo service clickhouse-server status    #查看clickhouse的状态

    ˙注意:状态也要是 active (running) 才可以

    5、连接clickhouse数据库,查看集群是否部署成功

     //客户端连接
    clickhouse-client
    
    //验证数据库
    show databases;
    
    //查看集群
    select * from system.clusters;

     6、验证zookeeper是否与当前数据库clickhouse进行了正确的配置,可以正确连接到

    直接在clickhouse的数据库中,输入如下的命令进行验证:

    SELECT * FROM system.zookeeper WHERE path = '/clickhouse';

    7、clickhouse数据中创建表,验证集群能力

    首先进入到clickhouse数据库:

    clickhouse-client

    (1)创建一个测试库

    create database abc;

    (2)分别在4个(118、117、116、115)节点上,创建本地表cluster3s1r_local。(直接复制,不用做任何的更改)

    CREATE TABLE abc.cluster3s1r_local
    (
        `id` Int32,
        `website` String,
        `wechat` String,
        `FlightDate` Date,
        Year UInt16
    )
    ENGINE = MergeTree(FlightDate, (Year, FlightDate), 8192);

    (3)在第一个(118)节点上,创建分布式表

    #ck_cluster:为metrika.xml配置文件中建立的标签
    CREATE TABLE abc.cluster3s1r_all AS cluster3s1r_local ENGINE = Distributed(ck_cluster, abc, cluster3s1r_local, rand());

     (4)往分布式表cluster3s1r_all中插入数据,cluster3s1r_all 会随机插入到四个节点的本地表(cluster3s1r_local)中#

    INSERT INTO default.cluster3s1r_all (id,website,wechat,FlightDate,Year)values(1,'https://niocoder.com/','java干货','2020-11-28',2020);
    
    INSERT INTO default.cluster3s1r_all (id,website,wechat,FlightDate,Year)values(2,'http://www.merryyou.cn/','javaganhuo','2020-11-28',2020);
    
    INSERT INTO default.cluster3s1r_all (id,website,wechat,FlightDate,Year)values(3,'http://www.xxxxx.cn/','xxxxx','2020-11-28',2020);

    (5)可以查看四个节点本地表的数据和分布式表的数据

    # 查询总量查分布式表 
    select * from cluster3s1r_all; 
    
    #各机器节点的本地表
    select * from cluster3s1r_local; 

     具体的内容可参考这篇文章:

    文章一:https://www.cnblogs.com/qa-freeroad/p/14394135.html

    文章二:https://www.cnblogs.com/ywjfx/p/14329605.html

  • 相关阅读:
    HLS协议实现
    hdu 1710 Binary Tree Traversals
    geoserver + postgis+postgresql+agslib.swc
    hdu 1241
    数值分析之牛顿法多项式求根
    逆波兰表达式 java
    【SQL】查询语句中in和exists的区别
    jsp连接MySQL操作GIS地图数据,实现添加point的功能
    mahout学习-1
    文件归档
  • 原文地址:https://www.cnblogs.com/syw20170419/p/16250500.html
Copyright © 2020-2023  润新知