clickhouse 高可用环境搭建

环境说明

操作系统版本:centos 7.6 1810
clickhouse 版本:20.9.3.45-2
zookeeper 版本:3.4.5

1. 下载 rpm 包

https://packagecloud.io/altinity/clickhouse
下载:
clickhouse-client-20.9.3.45-2.noarch.rpm
clickhouse-common-static-20.9.3.45-2.x86_64.rpm
clickhouse-server-20.9.3.45-2.noarch.rpm

2. clickhouse + zookeeper 节点分配

clickhouse 节点分配

主机分片副本
hostname011
hostname021
hostname031
hostname041
hostname051

zookeeper 节点分配

主机node
hostname011
hostname021
hostname031
hostname041
hostname051

3. zookeeper 安装包分发到各个节点,安装集群,启动集群。【略】

4. clickhouse 集群安装

4.2 CH安装包分发各个节点

scp -r *.rpm root@hostname:`pwd`
备注:安装 rpm 包路径:/opt/software/clickhouse

4.2 安装 rpm 包

rpm -ivh *
备注: 每个节点都要执行

4.3 修改配置文件

默认安装目录
# 配置文件目录
/etc/clickhouse-server 
# 服务启动脚本
/etc/init.d/clickhouse-server
# 数据目录
/var/lib/clickhouse
# 日志目录
/var/log/clickhouse-server

4.3.1 添加临时全局 config.xml 配置文件【无需重启服务】

  1. cd /etc/clickhouse-server/config.d # 此目录在clickhouse 服务启动后生成。
  2. 编辑 vi myconfig.xml
    添加如下内容:
<?xml version="1.0"?>
	<yandex>
			<logger>
				<!-- #修改日志文件目录 -->
				<level>trace</level>
				<log>/home/clickhouse/log/clickhouse-server/clickhouse-server.log</log>
				<errorlog>/home/clickhouse/log/clickhouse-server/clickhouse-server.err.log</errorlog>
		 </logger>
		 
			<!-- # 修改默认 tcp 端口,如果 tcp 端口被占用,服务无法启动 -->
			<tcp_port>9003</tcp_port>   
		<!-- # 修改数据目录 -->
		<path>/home/clickhouse/data/clickhouse/</path>
		<!-- # 修改数据目录 -->
			<tmp_path>/home/clickhouse/data/clickhouse/tmp/</tmp_path>
		<!-- # 修改数据目录 -->
		<user_files_path>/home/clickhouse/data/clickhouse/user_files/</user_files_path>
			<!-- # 修改数据目录 -->
		<access_control_path>/home/clickhouse/data/clickhouse/access/</access_control_path>
			<!-- # clickhouse 集群配置 -->
			<remote_servers incl="clickhouse_remote_servers" />
		<!-- # zookeeper 集群配置 -->
		<zookeeper incl="zookeeper-servers"  optional="true" />
		<macros incl="macros" optional="true" />   
		<!-- # 修改 schemas 格式化目录 -->
		<format_schema_path>/home/clickhouse/data/clickhouse/format_schemas/</format_schema_path>	
		<!-- # 添加集群配置文件 -->
		<include_from>/etc/clickhouse-server/config.d/metrika.xml</include_from>
		
		<listen_host>::</listen_host>
			
	</yandex>

4.3.2 新增临时users.xml 配置文件 【无需重启服务】

  1. cd /etc/clickhouse-server/users.d
  2. 添加用户密码配置文件
    vi myusers.xml
    添加如下内容 :
<?xml version="1.0"?>
<yandex>
        <users>
                <default>
                		<!-- 此项要与默认 user.xml 里面的一致,否则密码报错 --> 
                        <password>passwd</password>
                         <!-- <password_sha256_hex>859647933036763e40e61f8438ab1a5229f7b7a3d7e239444bac97796e4fb24d5</password_sha256_hex> -->
                        <networks incl="networks" replace="replace">
                <ip>::/0</ip>
            </networks>
                        <profile>default</profile>
                        <quota>default</quota>
                </default>
        </users>
</yandex>
3. 设置密文密码,对密码passwd进行SHA256加密
echo -n passwd | openssl dgst -sha256
输出:859e43935035763e40e61f428ab1a5221f7b2a3d7e239444bac97766e4fb27d5

4.3.3 创建集群配置信息文件 metrika.xml

vi metrika.xml
添加一下内容:

<?xml version="1.0"?>
<yandex>
	<!-- clickhouse 集群分片副本配置,两分片两副本 ,两分片,每个分片有两个副本-->
	<clickhouse_remote_servers>
		<mycluster>
			<!-- 分片1 -->
			<shard>
				<!-- 写入分片的权重,权重越大,数据写入该分片的概率会越大 -->
				<weight>1</weight>
				<internal_replication>true</internal_replication>
				<replica>
					<host>hostname02</host>
					<port>9003</port>
					<user>default</user>
					<password>passwd</password>
				</replica>
				<replica>
					<host>hostname04</host>
					<port>9003</port>
					<user>default</user>
					<password>passwd</password>
				</replica>
			</shard>
			<!-- 分片2 -->
			<shard>
				<!-- # 写入分片的权重,权重越大,数据写入该分片的概率会越大 -->
				<weight>1</weight>
				<internal_replication>true</internal_replication>
				<replica>
					<host>hostname03</host>
					<port>9003</port>
					<user>default</user>
					<password>passwd</password>
				</replica>
				<replica>
					<host>hostname05</host>
					<port>9003</port>
					<user>default</user>
					<password>passwd</password>
				</replica>
			</shard>			
		</mycluster>
	</clickhouse_remote_servers>
	
    <!-- zookeeper 相关配置 -->
    <zookeeper-servers>
    <node index="1">
    	<host>hostname01</host>
    	<port>2181</port>
    </node>
    <node index="2">
    	<host>hostname02</host>
    	<port>2181</port>
    </node>
    <node index="3">
    	<host>hostname03</host>
    	<port>2181</port>
    </node>
    <node index="4">
    	<host>hostname04</host>
    	<port>2181</port>
    </node>
    <node index="5">
    	<host>hostname05</host>
    	<port>2181</port>
    </node>
    </zookeeper-servers>

    <!-- macros -->
    <!-- 应用于复制表,【04,hostname04】分片号相同,副本号在每台机器上不能相同 -->
    <macros>
    	<shard>04</shard> 
    	<replica>hostname04</replica>
    </macros>
	
    <!-- 压缩算法 lz4 压缩算法lz4压缩比zstd快, 但更占磁盘 -->
    <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>

4.4 配置文件分发

scp -r config.xml users.xml metrika.xml root@hostname03:`pwd`
scp -r config.xml users.xml metrika.xml root@hostname04:`pwd`
scp -r config.xml users.xml metrika.xml root@hostname05:`pwd`
备注:修改 metrika.xml 的标签:macros 的值

4.4 服务启动

sudo systemctl start clickhouse-server
sudo systemctl stop clickhouse-server
或者
clickhouse-server --config-file=/etc/clickhouse-server/config.xml
查看server端服务开启/关闭状态
service clickhouse-server status

4.5 数据库连接

clickhouse-client -h hostname --port 9003 -u default --password password
备注: 连接端口默认 9000,修改端口要指定连接端口

5. 卸载:

(1)yum list installed | grep clickhouse
(2)yum remove -y clickhouse-common-static
(3)yum remove -y clickhouse-server-common
(4)rm -rf /var/lib/clickhouse
(5)rm -rf /etc/clickhouse-*
(6)rm -rf /var/log/clickhouse-server
默认安装目录:/etc/clickhouse-server

参考:https://blog.csdn.net/a13568hki/article/details/108329748

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值