1
clickhouse 环境搭建
1 docker 部署
使用 docker 部署时,需确保 docker 与 docker-compose 已安装完成,并拥有所需镜
像。
1.1 单节点
部署所需文件的目录结构如图 1.1 所示
图 1.1 部署文件目录结构
- conf:存放 clickhouse 配置文件
- docker-compose.yaml:docker 容器配置
- readme.txt:部署帮助
- setAlias.sh:起别名脚本
- storage-data.sh:初始化脚本
1.1.1 conf 目录
conf 目录中存放 clickhouse 配置文件 config.xml、users.xml、metrika.xml 与 zookeeper
配置 zoo.cfg。
- config.xml clickhouse 通用配置,部分如下
<!-- 日志级别:
- none (turns off logging)
- fatal
- critical
- error
- warning
- notice
- information
2
- debug
- trace
-->
<level>trace</level>
<!-- 日志路径 -->
<log>/var/log/clickhouse-server/clickhouse-server.log</log>
<!-- 错误日志路径 -->
<errorlog>/var/log/clickhouse-server/clickhouse-server.err.log</errorlog>
<!-- http 连接端口 -->
<http_port>8123</http_port>
<!-- tcp 连接端口 -->
<tcp_port>9000</tcp_port>
<!-- mysql 协议连接端口 -->
<mysql_port>9004</mysql_port>
<!-- postgresql 协议连接端口 -->
<postgresql_port>9005</postgresql_port>
<!-- clickhouse 服务器间交换数据的端口 -->
<interserver_http_port>9009</interserver_http_port>
<!-- 最大连接数 -->
<max_connections>4096</max_connections>
<!-- 关闭连接前请求等待时间 -->
<keep_alive_timeout>3</keep_alive_timeout>
<!-- 数据存放路径 -->
<path>/var/lib/clickhouse/</path>
<!-- 临时文件存放路径 -->
<tmp_path>/var/lib/clickhouse/tmp/</tmp_path>
<!-- 数据存储配置 -->
<storage_configuration>
<!-- 存储路径 -->
<disks>
<!-- 存放路径别名,可以随便取 -->
<disk_host1>
<path>/var/lib/clickhouse/storage-data/</path>
</disk_host1>
3
</disks>
<!-- 存放策略 -->
<policies>
<!-- 策略名 -->
<default_job>
<volumes>
<jbod>
<!-- 存储路径别名 -->
<disk>disk_host1</disk>
</jbod>
</volumes>
</default_job>
</policies>
</storage_configuration>
<!-- 用户相关信息存放路径 -->
<user_files_path>/var/lib/clickhouse/user_files/</user_files_path>
<!-- users.xml 文件路径 -->
<path>users.xml</path>
<!-- 引入外部文件 -->
<include_from>/etc/clickhouse-server/metrika.xml</include_from>
<!-- 表结构数据路径 -->
<format_schema_path>/var/lib/clickhouse/format_schemas/</format_schema_path>
- user.xml clickhouse 用户配置,部分如下
<!-- Profiles 类似于用户角色(role) -->
<profiles>
<!-- 特殊角色 default(必须始终存在并且在启动服务器时应用) -->
<default>
<!-- 查询最大内存 -->
<max_memory_usage>10000000000</max_memory_usage>
<!-- 负载均衡策略 -->
<load_balancing>random</load_balancing>
</default>
<!-- Profile that allows only read queries. -->
<!-- 角色 readonly -->
<readonly>
<!-- 只读限制
读数据 写数据 更改设置
0 Y Y Y
4
1 Y N N
2 Y N Y
-->
<readonly>1</readonly>
</readonly>
</profiles>
<!-- 用户 -->
<users>
<!-- 用户 default -->
<default>
<!-- 密码 -->
<password>cde3VFR$</password>
<!-- 允许访问列表 -->
<networks>
<!-- 允许所有访问 -->
<ip>::/0</ip>
</networks>
<!-- 使用何种 profile -->
<profile>default</profile>
...
</default>
</users>
- metrika.xml 集群配置,部分如下
<!-- 集群名 -->
<cluster_3shards_2replicas>
<!-- 分片一 -->
<shard>
<!-- 开启同步 -->
<internal_replication>true</internal_replication>
<!-- 副本一 -->
<replica>
<host>ck1</host>
<port>9000</port>
</replica>
<!-- 副本二 -->
<replica>
<host>ck2</host>
<port>9000</port>
</replica>
</shard>
...
</cluster_3shards_2replicas>