一、安装环境
Clickhouse的环境需求官网也有介绍:
System requirements for pre-built packages: Linux, x86_64 with SSE 4.2.
复制
即,CH只支持Linux,且必须支持4.2 SSE指令。若是在其他环境中想要搭建CH,可以使用docker或者使用线上云服务。
检测系统是否支持SSE4.2
grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
复制
二、版本选择和下载
第一步:创建安装包下载的目录
mkdir -p /bigdata/software/clickhouse
复制
第二步:获取最新的稳定版本,并下载安装包
export LATEST_VERSION=$(curl -s https://repo.clickhouse.tech/tgz/stable/ | \
grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort -V -r | head -n 1)
curl -O https://repo.clickhouse.tech/tgz/stable/clickhouse-common-static-$LATEST_VERSION.tgz
curl -O https://repo.clickhouse.tech/tgz/stable/clickhouse-common-static-dbg-$LATEST_VERSION.tgz
curl -O https://repo.clickhouse.tech/tgz/stable/clickhouse-server-$LATEST_VERSION.tgz
curl -O https://repo.clickhouse.tech/tgz/stable/clickhouse-client-$LATEST_VERSION.tgz
复制
三、安装
解压安装包,并安装
tar -xzvf clickhouse-common-static-$LATEST_VERSION.tgz
sudo clickhouse-common-static-$LATEST_VERSION/install/doinst.sh
tar -xzvf clickhouse-common-static-dbg-$LATEST_VERSION.tgz
sudo clickhouse-common-static-dbg-$LATEST_VERSION/install/doinst.sh
tar -xzvf clickhouse-server-$LATEST_VERSION.tgz
sudo clickhouse-server-$LATEST_VERSION/install/doinst.sh
tar -xzvf clickhouse-client-$LATEST_VERSION.tgz
sudo clickhouse-client-$LATEST_VERSION/install/doinst.sh
复制
四、配置文件
CH的配置主要为config.xml、user.xml和metrika.xml这三个。
功能,config.xml的配置信息如下:
<?xml version="1.0"?>
<!-- CH的config是热部署的 -->
<yandex>
<!-- 日志地址即日志信息配置 -->
<logger>
<level>trace</level>
<log>/data/clickhouse_1/log/server.log</log>
<errorlog>/data/clickhouse_1/log/error.log</errorlog>
<size>1000M</size>
<count>10</count>
</logger>
<!-- 配置是否发送崩溃信息给官方 -->
<send_crash_reports>
<enabled>false</enabled>
<anonymize>false</anonymize>
<endpoint>https://6f33034cfe684dd7a3ab9875e57b1c8d@o388870.ingest.sentry.io/5226277</endpoint>
</send_crash_reports>
<!-- 端口配置 -->
<http_port>8321</http_port>
<tcp_port>9015</tcp_port>
<interserver_http_port>9019</interserver_http_port>
<listen_host>::</listen_host>
<!-- 最大并发查询数 -->
<max_concurrent_queries>16</max_concurrent_queries>
<!-- 指定数据存储路径 -->
<path>/data/clickhouse_1/data/clickhouse/</path>
<tmp_path>/data/clickhouse_1/data/clickhouse/tmp/</tmp_path>
<!-- user配置 -->
<users_config>users.xml</users_config>
<default_profile>default</default_profile>
<!-- 默认设置配置文件,在参数user_config中指定 -->
<default_profile>default</default_profile>
<!-- 默认数据库 -->
<default_database>default</default_database>
<!-- 远程服务器,分布式表引擎和集群表功能使用的集群的配置 -->
<remote_servers incl="clickhouse_remote_servers" />
<distributed_ddl>
<!-- 在ZooKeeper中与DDL查询队列的路径 -->
<path>/clickhouse/task_queue/ddl</path>
</distributed_ddl>
<!-- zk启动 -->
<zookeeper incl="zookeeper-servers" optional="true" />
<!-- 启动macros,并指定地址 -->
<macros incl="macros" optional="true" />
<include_from>/opt/clickhouse-server_1/metrika.xml</include_from>
<!-- 标记缓存的大小,用于MergeTree系列的表中。单位是B,共享服务器的缓存,并根据需要分配内存。缓存大小必须至少为5368709120 -->
<mark_cache_size>5368709120</mark_cache_size>
</yandex>
复制
user.xml,用于用户管理和资源分配,其配置信息如下:
<?xml version="1.0"?>
<yandex>
<profiles>
<!-- 读写用户配置 -->
<default>
<!-- 单查询最大内存使用 -->
<max_memory_usage>10000000000</max_memory_usage>
<!-- 是否使用未压缩格式存储缓存(一般不建议) -->
<use_uncompressed_cache>0</use_uncompressed_cache>
<!-- 分配模式下选择副本的方式 -->
<load_balancing>random</load_balancing>
</default>
<!-- 只读用户配置 -->
<readonly>
<max_memory_usage>10000000000</max_memory_usage>
<use_uncompressed_cache>0</use_uncompressed_cache>
<load_balancing>random</load_balancing>
<readonly>1</readonly>
</readonly>
</profiles>
<!-- 用户和访问权限控制 -->
<users>
<!-- default为用户么,可以自己指定 -->
<default>
<!-- 密码可以用SHA256加密 -->
<password_sha256_hex>967f3bf355dddfabfca1c9f5cab39352b2ec1cd0b05f9e1e6b8f629705fe7d6e</password_sha256_hex>
<!-- 访问权限设置。
任何地方都能读取:
<ip>::/0</ip>
只能从本地读取:
<ip>::1</ip>
<ip>127.0.0.1</ip>
可以用正则表达式去表示。
-->
<networks incl="networks" replace="replace">
<ip>::/0</ip>
</networks>
<!-- profile 指定标签 -->
<profile>default</profile>
<!-- Quota 指定标签 -->
<quota>default</quota>
</default>
<!-- 只读用户(个人创建) -->
<ck>
<password_sha256_hex>967f3bf355dddfabfca1c9f5cab39352b2ec1cd0b05f9e1e6b8f629705fe7d6e</password_sha256_hex>
<networks incl="networks" replace="replace">
<ip>::/0</ip>
</networks>
<profile>readonly</profile>
<quota>default</quota>
</ck>
</users>
<!-- 资源限额 -->
<quotas>
<!-- 资源限额的名字. -->
<default>
<!-- 用于限制一定时间间隔内的资源使用量 -->
<interval>
<!-- 时间间隔 -->
<duration>3600</duration>
<!-- 下面配置为无限制 -->
<queries>0</queries>
<errors>0</errors>
<result_rows>0</result_rows>
<read_rows>0</read_rows>
<execution_time>0</execution_time>
</interval>
</default>
</quotas>
</yandex>
复制
metrika.xml,用于配置集群信息,其配置解释如下(本次安装不用修改该文件配置):
<?xml version="1.0"?>
<yandex>
<!-- 集群配置 -->
<clickhouse_remote_servers>
<!-- 集群名称-->
<ck_cluster>
<shard>
<!-- 建议一个台机器一个节点,避免资源争夺 -->
<!-- 表示是否只将数据写入其中一个副本,默认为false,表示写入所有副本,在复制表的情况下可能会导致重复和不一致,所以这里一定要改为true。-->
<internal_replication>false</internal_replication>
<!-- 副本配置,ch没有主备之分 -->
<replica>
<host>ck-host1</host>
<port>9000</port>
<user>default</user>
<password>******</password>
</replica>
<replica>
<host>ck-host2</host>
<port>9000</port>
<user>default</user>
<password>******</password>
</replica>
</shard>
<shard>
<internal_replication>false</internal_replication>
<replica>
<host>ck-host3</host>
<port>9000</port>
<user>default</user>
<password>******</password>
</replica>
<replica>
<host>ck-host4</host>
<port>9000</port>
<user>default</user>
<password>******</password>
</replica>
</shard>
<!-- ... -->
</ck_cluster>
</clickhouse_remote_servers>
<!-- 本节点副本名称,配置后能方便后续创建复制表时不用指定zk路径 -->
<macros>
<replica>ck1</replica>
</macros>
<!-- ZK配置 -->
<zookeeper-servers>
<node index="1">
<host>zk-host1</host>
<port>2181</port>
</node>
<node index="2">
<host>zk-host2</host>
<port>2181</port>
</node>
<node index="3">
<host>zk-host3</host>
<port>2181</port>
</node>
</zookeeper-servers>
<!-- 数据压缩算法配置 -->
<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>
复制
五、启动并验证
启动CH的服务端:
sudo /etc/init.d/clickhouse-server start
复制
登录CH客户端:
本地登录:
clickhouse-client -u username --password pwd
复制
远程登录:
clickhouse-client -h host --port port -u username --password pwd
复制
文章转载自大数据前沿探索,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1323次阅读
2025-03-13 11:40:53
【专家观点】罗敏:从理论到真实SQL,感受DeepSeek如何做性能优化
墨天轮编辑部
1308次阅读
2025-03-06 16:45:38
2025年2月国产数据库大事记
墨天轮编辑部
1023次阅读
2025-03-05 12:27:34
2025年2月国产数据库中标情况一览:GoldenDB 3500+万!达梦近千万!
通讯员
904次阅读
2025-03-06 11:40:20
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
466次阅读
2025-03-13 14:38:19
AI的优化能力,取决于你问问题的能力!
潇湘秦
439次阅读
2025-03-11 11:18:22
优炫数据库成功应用于国家电投集团青海海南州新能源电厂!
优炫软件
345次阅读
2025-03-21 10:34:08
达梦数据与法本信息签署战略合作协议
达梦数据
300次阅读
2025-03-06 09:26:57
国产化+性能王炸!这套国产方案让 3.5T 数据 5 小时“无感搬家”
YMatrix
285次阅读
2025-03-13 09:51:26
GoldenDB数据库社区正式上线!期待与您共享新知
GoldenDB分布式数据库
240次阅读
2025-03-12 14:06:39