• ClickHouse Senior Course Ⅱ


    序言

    Launch the Service

    参考资料;

    1. 安装 | ClickHouse Docs
    2. ClickHouse教程 | ClickHouse Docs

    单机

    服务端

    首先检查CPU是否支持ClickHouse(感觉没必要cuiyaonan2000@163.com)

    ClickHouse可以在任何具有x86_64,AArch64或PowerPC64LE CPU架构的Linux,FreeBSD或Mac OS X上运行。

    检查当前CPU是否支持SSE 4.2的命令:

     grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"

    推荐使用CentOS、RedHat和所有其他基于rpm的Linux发行版的官方预编译rpm包。

    1. sudo yum install -y yum-utils
    2. sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
    3. sudo yum install -y clickhouse-server clickhouse-client

    如上的安装需要联网,同时也可以手动下载去安装:https://packages.clickhouse.com/rpm/stable/

    无论是在线安装还是手动下载我们需要安装如下的2个服务:

    • clickhouse-server 
    • clickhouse-client 
    • clickhouse-common-static   ---手动下载才有的,ClickHouse编译的二进制文件
    • clickhouse-common-static-dbg  ---手动下载才有的,带有调试信息的ClickHouse二进制文件

    安装完毕后就可以启动了

    1. sudo /etc/init.d/clickhouse-server start
    2. clickhouse-client # or "clickhouse-client --password" if you set up a password.

    安装的clickhouse-server 的相关配置文件信息路径在如下的位置;

    如上2个配置文件(clickhouser-server start 默认加载本地的./config.xml 也可以使用启动参数--config-file指定配置文件):

    • /etc/clickhouser-server/config.xml  : clickhouse-server服务相关的配置信息
    • /etc/clickhouser-server/users.xml   : 控制账号密码权限等等.(默认是所有的都可以访问cuiyaonan2000@163.com)
    • /var/log/clickhouse-server/:  服务端的日志目录

    客户端

    连接clickhouser-server的方式有多种这里使用自带的clickhouse-client

    使用如下命令:

    1. #默认连接本地服务 也可以使用--host 指定ip的服务cuiyaonan2000@163.com
    2. clickhouse-client

    看到笑脸 输入select 1

    集群

    ClickHouse集群是一个同质集群。 设置步骤:

    1. 在群集的所有机器上安装ClickHouse服务端
    2. 在配置文件中设置集群配置
    3. 在每个实例上创建本地表
    4. 创建一个分布式表

    分布式表实际上是一种view,映射到ClickHouse集群的本地表。 从分布式表中执行SELECT查询会使用集群所有分片的资源。 您可以为多个集群指定configs,并创建多个分布式表,为不同的集群提供视图

    如官网所说,感觉太不智能了^_^,

    除了如上的步骤,在本地每个clickhouse-server中创建本地表后,就需要编辑配置文件了,配置文件才是起到决定性的作用cuiyaonan2000@163.com

    Config.xml相关配置信息

    在安装成功的config.xml中有详细的 分片数以及副本数的多种配置的用例如下图所示,按需修改就可以了cuiyaonan2000@163.com

    1. <remote_servers>
    2. <test_shard_localhost>
    3. <shard>
    4. <replica>
    5. <host>localhosthost>
    6. <port>9000port>
    7. replica>
    8. shard>
    9. test_shard_localhost>
    10. <test_cluster_one_shard_three_replicas_localhost>
    11. <shard>
    12. <internal_replication>falseinternal_replication>
    13. <replica>
    14. <host>127.0.0.1host>
    15. <port>9000port>
    16. replica>
    17. <replica>
    18. <host>127.0.0.2host>
    19. <port>9000port>
    20. replica>
    21. <replica>
    22. <host>127.0.0.3host>
    23. <port>9000port>
    24. replica>
    25. shard>
    26. test_cluster_one_shard_three_replicas_localhost>
    27. <test_cluster_two_shards_localhost>
    28. <shard>
    29. <replica>
    30. <host>localhosthost>
    31. <port>9000port>
    32. replica>
    33. shard>
    34. <shard>
    35. <replica>
    36. <host>localhosthost>
    37. <port>9000port>
    38. replica>
    39. shard>
    40. test_cluster_two_shards_localhost>
    41. remote_servers>

    其中一些属性的说明:

    internal_replication(true表示是复制表,false表示非复制表)

    • 如果底层是非复制表,那么这个值设为false(默认)。表示insert分布式表时,会在分片的所有副本都写入一份。
    • 如果底层是复制表,那么这个值配置为true。表示分布式表不会往所有副本都写入。仅写入到一个副本。

    复制表有个特性就是,会自动同步.  那同一个分片的多个部分,且不是复制表就需要设置成false来进行同步数据.且这种方式不具有原子性,复制表具有原子性.

    因为有副本,理所当然的就会有管理副本同步信息的工具.因此引入了zookeeper(同理也在config.xml中)

    1. <zookeeper>
    2. <node>
    3. <host>zoo01.yandex.ruhost>
    4. <port>2181port>
    5. node>
    6. <node>
    7. <host>zoo02.yandex.ruhost>
    8. <port>2181port>
    9. node>
    10. <node>
    11. <host>zoo03.yandex.ruhost>
    12. <port>2181port>
    13. node>
    14. zookeeper>

    如下的/var/lib/clickhouse/默认的数据存储目录(通常会修改默认
    路径配置,将数据保存到大容量磁盘挂载的路径)

    如果要让远程连接,则把如下的内容从 放开,否则无法远程连接

        <listen_host>::listen_host>
    

    User.xml配置

    这里主要是用来设置账号权限,以及远程连接的相关配置信息.具体参考官网

    用户设置 | ClickHouse Docs

    请用心理解user.xml才能理解里面的配置信息,全文如下所示

    1. <clickhouse>
    2. <profiles>
    3. <default>
    4. default>
    5. <readonly>
    6. <readonly>1readonly>
    7. readonly>
    8. profiles>
    9. <users>
    10. <default>
    11. <password>password>
    12. <networks>
    13. <ip>::/0ip>
    14. networks>
    15. <profile>defaultprofile>
    16. <quota>defaultquota>
    17. default>
    18. users>
    19. <quotas>
    20. <default>
    21. <interval>
    22. <duration>3600duration>
    23. <queries>0queries>
    24. <errors>0errors>
    25. <result_rows>0result_rows>
    26. <read_rows>0read_rows>
    27. <execution_time>0execution_time>
    28. interval>
    29. default>
    30. quotas>
    31. clickhouse>

  • 相关阅读:
    Vue3学习(二)
    第5章 多媒体知识
    SHIB去零计划:创新金融未来,打造稳定数字资产新范式
    LocalDateTime now = LocalDateTime.now();这个方法过时了吗
    ide 快捷键
    MySQL-1(12000字详解)
    Linux编辑器---vim的使用
    第十二章 磁盘管理
    土壤污染监测 环保数采仪应用
    微服务框架 SpringCloud微服务架构 5 Nacos 5.7 Nacos 与 Eureka 的对比
  • 原文地址:https://blog.csdn.net/cuiyaonan2000/article/details/127429724