美文网首页
clickhouse-部署详解

clickhouse-部署详解

作者: 做量化的程序员 | 来源:发表于2020-04-28 16:53 被阅读0次

Clickhouse 安装部署

部署为3个节点的集群,数据无副本。单机则不需要配置metrika.xml文件即可。

环境
  • centos7
  • ClickHouse 19.14
  • 可以采用安装yum源的方式,但是下载较慢,不如自己下载需要的RPM,直接安装,官方yum源安装方式参见
https://clickhouse.tech/docs/en/getting_started/install/

RPM方式
  • 下载地址
https://packagecloud.io/altinity/clickhouse
  • 需要的包
 # 需要的依赖 yum install -y libicu unixODBC
clickhouse-server-common-*
clickhouse-server-*
clickhouse-common-static-*
clickhouse-client-*
  • 安装下载的包


    image
rpm -ivh ./* 

编写配置文件

  • RPM安装之后,默认会在 /etc/clickhouse-server/ 创建基础配置文件,我们依然使用这个目录作为配置文件目录即可,当然也可以将自己新建目录,启动clickhouse-server 的时候知道配置文件路径即可,这里采用默认路径来管理配置文件,需要编写3个配置文件,config.xml,metrika.xml,users.xml, 其中metrika.xmlusers.xml 是为了方便管理配置自己创建的,在config.xml中引用这两个配置文件即可
  • 具体配置文件信息在集群目录下查看即可,这里选择一台机器配置放置如下


config.yaml

主要配置服务端口、ip、文件存储目录,系统配置、zk配置等参数。本文不涉及zk配置。并且开启query_log,方便后期做监控。

文件中注释很详细,根据需要配置即可。

metrika.yaml

集群配置、压缩算法配置。本示例集群名为default_cluster,可定义多个。名称自定义,创建分布式表时指定对应的集群名称实现灵活使用数据。


<yandex>
<!-- 集群配置 -->
<clickhouse_remote_servers>
    <default_cluster>
        <!-- 数据分片1 -->
        <shard>
 <internal_replication>false</internal_replication>
            <replica>
                <host>机器host</host>
                <port>9000</port>
   <user>账号</user>
                <password>密码</password>
            </replica>
        </shard>
        <!-- 数据分片2 -->
        <shard>
           <replica>
                <host>机器host</host>
                <port>9000</port>
   <user>账号</user>
                <password>密码</password>
            </replica>
        </shard>
        <!-- 数据分片3 -->
        <shard>
            <replica>
                <host>机器host</host>
                <port>9000</port>
  <user>账号</user>
                <password>密码</password>
            </replica>
        </shard>
    </default_cluster>
</clickhouse_remote_servers>

<macros>
    <cluster>default_cluster</cluster>
    <replica>机器host‘</replica>
    <shard>1</shard>
</macros>

<networks>
   <ip>::/0</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>
users.xml
  • 主要定义用户名密码<users>标签中配置。

结构资料:

<users>
    <!-- If user name was not specified, 'default' user is used. -->
    <user_name>
        <password></password>
        <!-- Or -->
        <password_sha256_hex></password_sha256_hex>

        <networks incl="networks" replace="replace">
        </networks>
    
        <!-- 指定引用profiles配置 -->
        <profile>profile_name</profile>
      
         <!-- 指定引用quotas配置 -->
        <quota>default</quota>

        <databases>
            <database_name>
                <table_name>
                    <filter>expression</filter>
                <table_name>
            </database_name>
        </databases>
    </user_name>
    <!-- Other users settings -->
</users>

密码可以以明文或SHA256(十六进制格式)指定
不建议使用明文;

  • 铭文密码把密码写入password标签中
  • 要使用其SHA256散列分配密码,请将其放置在 password_sha256_hex标签中
密码生成示例:`PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'

结果的第一行是密码。 第二行是相应的SHA256哈希

  • 用户在使用时的配置参数<profiles>中配置。

官方配置文档介绍很详细,在实际使中还需要自己优化。自己就踩过不少坑,以后有机会和大家分享。

load_balancing指定用于分布式查询处理的副本选择算法

*   随机(默认情况下)load_balancing = random
*   最近的主机名 load_balancing = nearest_hostname
*   按顺序 load_balancing = in_order
*   第一次或随机 load_balancing = first_or_random
  • 配额设置,单个用户最大能用的资源多少<quotas>。配额文档

start.sh (启动脚本由supervisor调用)

#!/bin/sh
TZ=Asia/Shanghai clickhouse-server --config-file=/etc/clickhouse-server/config.xml --pid-file=/etc/clickhouse-server/clickhouse.pid

Supervisor 管理clickhouse

  • 安装部署
设置
# 具体 nofile大小,根据你们实际情况定
echo 12553500 > /proc/sys/fs/file-max
echo 12553500 > /proc/sys/fs/nr_open
vi /etc/security/limits.conf 加入
* soft nofile 1000000
* hard nofile 1000000
 echo 0 | sudo tee /proc/sys/vm/overcommit_memory
 echo 'never' | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
vi /usr/lib/systemd/system/supervisord.service 加入
LimitNOFILE=409600
LimitNPROC=409600

yum安装
yum install epel-release
yum install -y supervisor
systemctl enable supervisord # 开机自启动
systemctl start supervisord  # 启动supervisord服务
Supervisor管理clickhouse进程配置
  • 进入/etc/supervisord.d/ 目录下创建如下配置文件
  • clickhouse.ini
[program:clickhouse]
redirect_stderr=true
stdout_logfile=/var/log/supervisor/clickhouse-server.log
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=10
command= sh /etc/clickhouse-server/start.sh
timeout = 60*60
user=root
autostart=true
autorestart=true
startsecs=10
startretries=1
stopasgroup=true
killasgroup=true
environment=LC_ALL='en_US.UTF-8',LANG='en_US.UTF-8',LC_LANG='en_US.UTF-8'
  • 执行命令启动Clickhouse
supervisorctl reread    
supervisorctl update clickhouse
  • clicent 连接 默认default用户|非默认 -u
clickhouse-client --host 127.0.0.1 --password yourpass --port 9000 -m
  • 日志的分布式表
    以后做clickhouse监控可以用到。
    根据system.query_log表结构创建query_log_all表。
CREATE TABLE system.query_log_all AS system.query_log ENGINE = Distributed(default_cluster, system, query_log);

结语

  • 至此Clickhouse在其中一台机器上就安装完毕了,其他各台机器同样的方式安装即可,上边列出的配置信息,是列出了三个分片,无副本,不依赖zk。

相关文章

  • clickhouse-部署详解

    Clickhouse 安装部署 部署为3个节点的集群,数据无副本。单机则不需要配置metrika.xml文件即可。...

  • Django2+uwsgi+nginx部署详解

    Django2+uwsgi+nginx部署详解 Django项目写好了,最后一步就是部署(deployment)了...

  • Python相关文章(5)

    环境部署 通过pycharm使用git[图文详解] pycharm使用github Pycharm连接Github...

  • Linux之jdk安装

    Linux部署java全流程-详解(全套)https://blog.csdn.net/weixin_3735209...

  • 123、Spark核心编程进阶之standalone部署细节以及

    standalone部署细节以及相关参数详解 这里主要介绍下spark部署过程中的一些细节 配置集群中的worke...

  • clickhouse-物化视图

    参考文档 https://clickhouse.tech/docs/en/sql-reference/statem...

  • Solr部署详解

    Solr的两种部署模式 Solr程序包安装好后,可以以两种模式来启动solr服务器: Standalone Ser...

  • Nginx部署详解

    第一周环境准备任务 任务目标:准备学习环境,学习web服务器的搭建过程,并做响应的加固学习。推荐环境:linux+...

  • Elasticsearch部署详解

    Elasticsearch部署 以下步骤均按照2.4.5版本讲解,请现从官网下载安装包 设置服务器Swap优化:打...

  • Nginx | 常用配置

    Nginx 常用功能 常用配置详解 Nginx 部署 Vue 项目 将 Vue 项目build打包后生成的 ...

网友评论

      本文标题:clickhouse-部署详解

      本文链接:https://www.haomeiwen.com/subject/pbmaihtx.html