1、环境及软件包
环境
系统版本:CentOS Linux release 7.9.2009
软件包
clickhouse-common-static-21.9.5.16-2.x86_64.rpm
clickhouse-client-21.9.5.16-2.noarch.rpm
clickhouse-server-21.9.5.16-2.noarch.rpm
apache-zookeeper-3.6.3-bin.tar.gz
2、软件包安装
clickhouse 21.9.5.16
下载软件包,版本为 21.9.5.16。下载地址:https://repo.yandex.ru/clickhouse/rpm/stable/x86_64/,需下载的包如下:
clickhouse-client-21.9.5.16-2.noarch.rpm
clickhouse-common-static-21.9.5.16-2.x86_64.rpm
clickhouse-server-21.9.5.16-2.noarch.rpm
传到服务器~目录下,依次执行以下命令:
rpm -ivh clickhouse-common-static-21.9.5.16-2.x86_64.rpm
rpm -ivh clickhouse-client-21.9.5.16-2.noarch.rpm
rpm -ivh clickhouse-server-21.9.5.16-2.noarch.rpm
执行成功后配置目录为:/etc/clickhouse-server/
apache-zookeeper-3.6.3
下载软件包,版本为 3.6.3。下载地址:https://dlcdn.apache.org/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz
传到服务器~目录下(可自行选择存放目录)
解压缩:
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz
简单修改下目录名:
mv apache-zookeeper-3.6.3-bin apache-zookeeper-3.6.3
3、配置及部署
创建目录
在每台机器根目录下创建文件夹 data
cd / && mkdir data
分别创建 zookeeper 及 clickhouse 目录
cd /data && mkdir zookeeper
cd /data && mkdir clickhouse
注意目录权限问题
zookeeper 集群部署
进入安装目录 cd apache-zookeeper-3.6.3
创建文件夹并创建 myid 文件,且写入数字 1 mkdir data && cd data && echo '1' >> myid
切换到 conf 目录更改 zoo_simple.cfg 文件名,cd apache-zookeeper-3.6.3/conf && mv zoo_simple.cfg zoo.cfg
编辑 zoo.cfg 文件 vim zoo.cfg, 添加 / 修改如下内容:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper
dataLogDir=/var/log/zookeeper
clientPort=2181
server.1=hostaddress:2888:3888
server.2=hostaddress2:2888:3888
server.3=hostaddress3:2888:3888
其中需修改的参数:
dataDir=/data/zookeeper (/data/zookeeper 替换成自己的目录)
dataLogDir=/data/zookeeper/log (/var/log/zookeeper 替换成自己的目录)
server.1=hostaddress:2888:3888 (hostaddress 替换成节点 1 的主机地址)
server.2=hostaddress2:2888:3888 (hostaddress2 替换成节点 2 的主机地址)
server.3=hostaddress3:2888:3888 (hostaddress3 替换成节点 3 的主机地址)
启动 zookeeper
在 /usr/lib/systemd/system 目录下创建 zookeeper.service 文件,输入如下内容:
[Unit]
Description=zookeeper
After=syslog.target network.target
[Service]
Type=forking
User=root
Group=root
ExecStart=/root/zookeeper-3.6.3/bin/zkServer.sh start
ExecStop=/root/zookeeper-3.6.3/bin/zkServer.sh stop
Restart=on-failure
[Install]
WantedBy=multi-user.target
执行启动并设置开机启动
systemctl start zookeeper && systemctl enable zookeeper
查看状态或进程
ps -aux|grep zookeeper
在每台节点机器上重复以上步骤
第 2 步中写入 myid 文件的数字递增,例如第 2 个节点写入 2,第 3 个节点写入 3
ClickHouse 集群部署
进入 clickhouse 配置目录
cd /etc/clickhouse-server
编辑 config.xml 文件 (建议备份一下,可作为参考)
cp config.xml config.xml.bak
vim config.xml
替换写入以下内容:
<yandex>
<logger>
<!-- 日志记录级别。可接受的值: trace, debug, information, warning, error -->
<level>trace</level>
<!-- 日志文件,根据级别包含所有条目 -->
<log>/var/log/clickhouse-server/clickhouse-server.log</log>
<!-- 错误日志文件 -->
<errorlog>/var/log/clickhouse-server/clickhouse-server.err.log</errorlog>
<!-- 文件的大小。适用于loganderrorlog,文件达到大小后,ClickHouse将对其进行存档并重命名,并在其位置创建一个新的日志文件 -->
<size>1000M</size>
<!-- ClickHouse存储的已归档日志文件的数量 -->
<count>10</count>
</logger>
<!-- 默认http 端口 -->
<http_port>8123</http_port>
<!-- 默认tcp 端口 -->
<tcp_port>9000</tcp_port>
<!--通过MySQL协议与客户端通信的端口 -->
<mysql_port>9004</mysql_port>
<postgresql_port>9005</postgresql_port>
<interserver_http_port>9009</interserver_http_port>
<!-- 本机域名 -->
<interserver_http_host>本机IP</interserver_http_host>
<interserver_http_credentials>
<user>default</user>
<password>123456</password>
</interserver_http_credentials>
<!-- 如果禁用了ipv6,使用下面配置
<listen_host>0.0.0.0</listen_host>-->
<!-- 如果没有禁用ipv6,使用下面配置 -->
<listen_host>::</listen_host>
<!-- 最大连接数 -->
<max_connections>4096</max_connections>
<keep_alive_timeout>3</keep_alive_timeout>
<grpc>
<enable_ssl>false</enable_ssl>
<ssl_cert_file>/path/to/ssl_cert_file</ssl_cert_file>
<ssl_key_file>/path/to/ssl_key_file</ssl_key_file>
<ssl_require_client_auth>false</ssl_require_client_auth>
<ssl_ca_cert_file>/path/to/ssl_ca_cert_file</ssl_ca_cert_file>
<compression>deflate</compression>
<compression_level>medium</compression_level>
<max_send_message_size>-1</max_send_message_size>
<max_receive_message_size>-1</max_receive_message_size>
<verbose_logs>false</verbose_logs>
</grpc>
<openSSL>
<server>
<certificateFile>/etc/clickhouse-server/server.crt</certificateFile>
<privateKeyFile>/etc/clickhouse-server/server.key</privateKeyFile>
<dhParamsFile>/etc/clickhouse-server/dhparam.pem</dhParamsFile>
<verificationMode>none</verificationMode>
<loadDefaultCAFile>true</loadDefaultCAFile>
<cacheSessions>true</cacheSessions>
<disableProtocols>sslv2,sslv3</disableProtocols>
<preferServerCiphers>true</preferServerCiphers>
</server>
<client>
<loadDefaultCAFile>true</loadDefaultCAFile>
<cacheSessions>true</cacheSessions>
<disableProtocols>sslv2,sslv3</disableProtocols>
<preferServerCiphers>true</preferServerCiphers>
<invalidCertificateHandler>
<name>RejectCertificateHandler</name>
</invalidCertificateHandler>
</client>
</openSSL>
<!-- 最大并发查询数 -->
<max_concurrent_queries>100</max_concurrent_queries>
<max_server_memory_usage>0</max_server_memory_usage>
<max_thread_pool_size>10000</max_thread_pool_size>
<max_server_memory_usage_to_ram_ratio>0.9</max_server_memory_usage_to_ram_ratio>
<total_memory_profiler_step>4194304</total_memory_profiler_step>
<total_memory_tracker_sample_probability>0</total_memory_tracker_sample_probability>
<!-- 单位是B -->
<uncompressed_cache_size>8589934592</uncompressed_cache_size>
<!-- 标记缓存的大小,用于MergeTree系列的表中。 以字节为单位 -->
<mark_cache_size>5368709120</mark_cache_size>
<mmap_cache_size>1000</mmap_cache_size>
<compiled_expression_cache_size>134217728</compiled_expression_cache_size>
<!-- 数据存储路径 -->
<path>/data/clickhouse/</path>
<!-- 用于处理大型查询的临时数据的路径 -->
<tmp_path>/data/clickhouse/tmp/</tmp_path>
<!-- 包含用户文件的目录,在表函数file()中使用 -->
<user_files_path>/data/clickhouse/user_files/</user_files_path>
<ldap_servers></ldap_servers>
<!-- 用户配置文件,可以配置用户访问、profiles、quota、查询等级等 -->
<user_directories>
<users_xml>
<path>users.xml</path>
</users_xml>
<local_directory>
<path>/data/clickhouse/access/</path>
</local_directory>
</user_directories>
<default_profile>default</default_profile>
<custom_settings_prefixes></custom_settings_prefixes>
<default_database>default</default_database>
<mlock_executable>true</mlock_executable>
<remap_executable>false</remap_executable>
<!-- 集群信息 -->
<!-- 远程服务器,分布式表引擎和集群表功能使用的集群的配置 -->
<remote_servers incl="clickhouse_remote_servers" />
<!-- ClickHouse与ZooKeeper群集进行交互的设置 -->
<zookeeper incl="zookeeper-servers" optional="true" />
<macros incl="macros" optional="true" />
<!-- 指定metrika.xml文件的路径,当不指定时默认是/etc/metrika.xml -->
<include_from>/etc/clickhouse-server/metrika.xml</include_from>
<builtin_dictionaries_reload_interval>3600</builtin_dictionaries_reload_interval>
<max_session_timeout>3600</max_session_timeout>
<default_session_timeout>60</default_session_timeout>
<query_log>
<database>system</database>
<table>query_log</table>
<partition_by>toYYYYMM(event_date)</partition_by>
<flush_interval_milliseconds>7500</flush_interval_milliseconds>
</query_log>
<trace_log>
<database>system</database>
<table>trace_log</table>
<partition_by>toYYYYMM(event_date)</partition_by>
<flush_interval_milliseconds>7500</flush_interval_milliseconds>
</trace_log>
<query_thread_log>
<database>system</database>
<table>query_thread_log</table>
<partition_by>toYYYYMM(event_date)</partition_by>
<flush_interval_milliseconds>7500</flush_interval_milliseconds>
</query_thread_log>
<query_views_log>
<database>system</database>
<table>query_views_log</table>
<partition_by>toYYYYMM(event_date)</partition_by>
<flush_interval_milliseconds>7500</flush_interval_milliseconds>
</query_views_log>
<part_log>
<database>system</database>
<table>part_log</table>
<partition_by>toYYYYMM(event_date)</partition_by>
<flush_interval_milliseconds>7500</flush_interval_milliseconds>
</part_log>
<metric_log>
<database>system</database>
<table>metric_log</table>
<flush_interval_milliseconds>7500</flush_interval_milliseconds>
<collect_interval_milliseconds>1000</collect_interval_milliseconds>
</metric_log>
<asynchronous_metric_log>
<database>system</database>
<table>asynchronous_metric_log</table>
<flush_interval_milliseconds>7000</flush_interval_milliseconds>
</asynchronous_metric_log>
<opentelemetry_span_log>
<engine>
engine MergeTree
partition by toYYYYMM(finish_date)
order by (finish_date, finish_time_us, trace_id)
</engine>
<database>system</database>
<table>opentelemetry_span_log</table>
<flush_interval_milliseconds>7500</flush_interval_milliseconds>
</opentelemetry_span_log>
<crash_log>
<database>system</database>
<table>crash_log</table>
<partition_by />
<flush_interval_milliseconds>1000</flush_interval_milliseconds>
</crash_log>
<top_level_domains_lists></top_level_domains_lists>
<dictionaries_config>*_dictionary.xml</dictionaries_config>
<encryption></encryption>
<distributed_ddl><path>/clickhouse/task_queue/ddl</path></distributed_ddl>
<graphite_rollup_example>
<pattern>
<regexp>click_cost</regexp>
<function>any</function>
<retention>
<age>0</age>
<precision>3600</precision>
</retention>
<retention>
<age>86400</age>
<precision>60</precision>
</retention>
</pattern>
<default>
<function>max</function>
<retention>
<age>0</age>
<precision>60</precision>
</retention>
<retention>
<age>3600</age>
<precision>300</precision>
</retention>
<retention>
<age>86400</age>
<precision>3600</precision>
</retention>
</default>
</graphite_rollup_example>
<format_schema_path>/data/clickhouse/format_schemas/</format_schema_path>
<query_masking_rules>
<rule>
<name>hide encrypt/decrypt arguments</name>
<regexp>((?:aes_)?(?:encrypt|decrypt)(?:_mysql)?)\s*\(\s*(?:'(?:\\'|.)+'|.*?)\s*\)</regexp>
<replace>\1(???)</replace>
</rule>
</query_masking_rules>
<send_crash_reports>
<enabled>false</enabled>
<anonymize>false</anonymize>
<endpoint>https://6f33034cfe684dd7a3ab9875e57b1c8d@o388870.ingest.sentry.io/5226277</endpoint>
</send_crash_reports>
</yandex>
其中改动点如下:
<!-- 本机域名 -->
<interserver_http_host>本机IP</interserver_http_host>
<interserver_http_credentials>
<user>default</user>
<password>123456</password>
</interserver_http_credentials>
<!-- 如果没有禁用ipv6,使用下面配置 -->
<listen_host>::</listen_host>
<!-- 数据存储路径 -->
<path>/data/clickhouse/</path>
<!-- 用于处理大型查询的临时数据的路径 -->
<tmp_path>/data/clickhouse/tmp/</tmp_path>
<!-- 包含用户文件的目录,在表函数file()中使用 -->
<user_files_path>/data/clickhouse/user_files/</user_files_path>
<!-- 数据存储路径 -->
<path>/data/clickhouse/</path>
<!-- 用于处理大型查询的临时数据的路径 -->
<tmp_path>/data/clickhouse/tmp/</tmp_path>
<!-- 包含用户文件的目录,在表函数file()中使用 -->
<user_files_path>/data/clickhouse/user_files/</user_files_path>
<!-- 集群信息 -->
<!-- 远程服务器,分布式表引擎和集群表功能使用的集群的配置 -->
<remote_servers incl="clickhouse_remote_servers" />
<!-- ClickHouse与ZooKeeper群集进行交互的设置 -->
<zookeeper incl="zookeeper-servers" optional="true" />
<macros incl="macros" optional="true" />
<!-- 指定metrika.xml文件的路径,当不指定时默认是/etc/metrika.xml -->
<include_from>/etc/clickhouse-server/metrika.xml</include_from>
在 /etc/clickhouse-server (config.xml 文件中 include_from 节点的内容,也可不指定 include_from 节点,则在 /etc 下创建 metrika.xml)下创建 metrika.xml 文件,并写入以下内容:
<yandex>
<!-- 集群配置 -->
<!-- 该标签与config.xml的<remote_servers incl="clickhouse_remote_servers"/> 保持一致 -->
<clickhouse_remote_servers>
<!-- 集群名:sujuhu -->
<sujuhu>
<!-- 数据分片1 -->
<shard>
<internal_replication>true</internal_replication>
<!-- 复制集 -->
<replica>
<host>主机地址</host>
<port>9000</port>
<user>default</user>
<password>123456</password>
</replica>
</shard>
<!-- 数据分片2
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>主机地址</host>
<port>9000</port>
<user>default</user>
<password>123456</password>
</replica>
</shard> -->
</sujuhu>
</clickhouse_remote_servers>
<!-- zookeeper 集群 -->
<!-- 该标签与config.xml的<zookeeper incl="zookeeper-servers" optional="true"/> 保持一致 -->
<zookeeper-servers>
<node index="1">
<host>zookeeper节点地址1</host>
<port>2181</port>
</node>
<!--
<node index="2">
<host>zookeeper节点地址2</host>
<port>2181</port>
</node>
<node index="3">
<host>zookeeper节点地址3</host>
<port>2181</port>
</node>-->
</zookeeper-servers>
<!-- 节点副本名称 -->
<!-- 该标签与config.xml的<macros incl="macros" optional="true"/>保持一致 -->
<macros>
<shard>01</shard>
<replica>节点名</replica>
</macros>
<!-- 监听网络 -->
<networks>
<ip>::/0</ip>
</networks>
</yandex>
其中需要修改的标签有:
集群名:
<sujuhu>
数据分片节点(按实际来):
<shard>
zookeeper集群节点(按实际来):
<zookeeper-servers>
节点副本名称:
<macros>
启动 clickhouse- server
ssystemctl start clickhouse-server.service
查看启动结果
systemctl status clickhouse-server.service
在每台机器上重复以上步骤,并按实际情况修改配置
启动之前注意先启动 zookeeper
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/128026.html
摘要:利用快速构建系统。构建系统和的安装本文不再赘述,直接开始动手构建系统。分别为和,用于读写组,用于只读组。最后配置的监控服务可选,非必须至此,一个全部基于开源应用的简易系统就构建好了。利用ProxySQL、MySQL、ClickHouse快速构建HTAP系统。1. 关于ClickHouse企业里随着数据量的增加,以及日趋复杂的分析性业务需求,主要适用于OLTP场景的MySQL压力越来越大。多年...
摘要:概览概览概览产品动态产品介绍什么是云数据仓库产品优势应用场景基本概念使用限制快速上手操作指南管理集群配置升降级重启实例重置管理员密码删除集群连接集群数据同步本地数据导入数据导入数据导入间数据导入开发指南数据类型语法创建库创建表创建视图插入 概览概览产品动态产品介绍什么是云数据仓库 UClickHouse产品优势应用场景基本概念使用限制快速上手操作指南管理集群配置升降级重启实例重置管理员密码删...
摘要:向大家介绍的基本特性和概念,特别是性能对比数据,包括和的性能对比。 向大家介绍ClickHouse的基本特性和概念,特别是性能对比数据,包括和Hive/Spark/Druid的性能对比。 文章资源来自示说网showImg(https://segmentfault.com/img/remote/1460000016566522?w=1440&h=810);showImg(https://...
摘要:向大家介绍的基本特性和概念,特别是性能对比数据,包括和的性能对比。 向大家介绍ClickHouse的基本特性和概念,特别是性能对比数据,包括和Hive/Spark/Druid的性能对比。 文章资源来自示说网showImg(https://segmentfault.com/img/remote/1460000016566522?w=1440&h=810);showImg(https://...
阅读 1286·2024-02-01 10:43
阅读 371·2024-01-31 14:58
阅读 433·2024-01-31 14:54
阅读 818·2024-01-29 17:11
阅读 2206·2024-01-25 14:55
阅读 1481·2023-06-02 13:36
阅读 2087·2023-05-23 10:26
阅读 470·2023-05-23 10:25