clickhouse-3分片3副本搭建

服务器准备

3分片3副本
10.2.0.151分片 + 153的副本
10.2.0.152分片 + 151的副本
10.2.0.153分片 + 152的副本
ps:
这个比较适用于服务器既当分片又当副本的情况~
如果服务器够多,分片副本都是单独服务器就别这样费劲了~

下载clickhouse安装包

cd /usr/local/clickhouse
wget https://mirrors.tuna.tsinghua.edu.cn/clickhouse/rpm/stable/x86_64/clickhouse-client-22.2.2.1-2.noarch.rpm
wget https://mirrors.tuna.tsinghua.edu.cn/clickhouse/rpm/stable/x86_64/clickhouse-common-static-22.2.2.1-2.x86_64.rpm
wget https://mirrors.tuna.tsinghua.edu.cn/clickhouse/rpm/stable/x86_64/clickhouse-server-22.2.2.1-2.noarch.rpm
# 安装
rpm -ivh clickhouse-common-static-22.2.2.1-2.x86_64.rpm clickhouse-client-22.2.2.1-2.noarch.rpm clickhouse-server-22.2.2.1-2.noarch.rpm

在所有服务器进行上述操作

修改密码

cd /etc/clickhouse-server/
vi users.xml

<password>xxxxxx</password>

下边remote_servers里的password

修改配置文件

cd /etc/clickhouse-server/
# copy一份,另一台的副本集也在这启动
cp config.xml config2.xml
# 先改config.xml
vi config.xml


# 更改监听让所有正常ip可连接
<listen_host>0.0.0.0</listen_host>

# 日志,端口文件用默认的,这里不做操作

# 更改 interserver_http_host  如果是hostname不用修改,如果是ip一点要修改,改成对应服务器ip就行
<interserver_http_host>10.2.0.151</interserver_http_host>

# 配置 remote_server port和tcp_port对应
# enic_cluster 这个自己命名就行,建库建表需要用到
<remote_servers>
        <enic_cluster>
			<shard>
				<weight>1</weight>
				<internal_replication>true</internal_replication>
				<replica>
					<host>10.2.0.151</host>
					<port>9000</port>
					<user>default</user>
					<password>default</password>
				</replica>
				<replica>
					<host>10.2.0.152</host>
					<port>9001</port>
					<user>default</user>
					<password>default</password>
				</replica>
			</shard>
			<shard>
				<weight>1</weight>
				<internal_replication>true</internal_replication>
				<replica>
					<host>10.2.0.152</host>
					<port>9000</port>
					<user>default</user>
                    <password>default</password>
				</replica>
				<replica>
					<host>10.2.0.153</host>
					<port>9001</port>
					<user>default</user>
					<password>default</password>
				</replica>
			</shard>
			<shard>
				<weight>1</weight>
				<internal_replication>true</internal_replication>
				<replica>
					<host>10.2.0.153</host>
					<port>9000</port>
					<user>default</user>
                    <password>default</password>
				</replica>
				<replica>
					<host>10.2.0.151</host>
					<port>9001</port>
					<user>default</user>
                    <password>default</password>
				</replica>
			</shard>
		</enic_cluster>
    </remote_servers>

# 配置zookeeper
<zookeeper>
	<node index="1">
		<host>ip1</host>
		<port>2181</port>
	</node>
	<node index="2">
		<host>ip2</host>
		<port>2181</port>
	</node>
	<node index="3">
		<host>ip3</host>
		<port>2181</port>
	</node>
</zookeeper>

# 配置macros
<macros>
    <shard>01</shard>
    <replica>01-1</replica>
</macros>

# 再改config2.xml
vi config2.xml


# 更改监听让所有正常ip可连接
<listen_host>0.0.0.0</listen_host>

# 更改端口
<http_port>8124</http_port>
<tcp_port>9001</tcp_port>
<mysql_port>9010</mysql_port>
<postgresql_port>9011</postgresql_port>
<interserver_http_port>9012</interserver_http_port>

# 更改日志文件
<log>/var/log/clickhouse-server2/clickhouse-server.log</log>
<errorlog>/var/log/clickhouse-server2/clickhouse-server.err.log</errorlog>
<path>/var/lib/clickhouse2/</path>
<tmp_path>/var/lib/clickhouse2/tmp/</tmp_path>
<user_files_path>/var/lib/clickhouse2/user_files/</user_files_path>

# 更改 interserver_http_host  如果是hostname不用修改,如果是ip一点要修改,改成对应服务器ip就行
<interserver_http_host>10.2.0.151</interserver_http_host>

# 配置 remote_server
# enic_cluster 这个自己命名就行,建库建表需要用到
<remote_servers>
        <enic_cluster>
			<shard>
				<weight>1</weight>
				<internal_replication>true</internal_replication>
				<replica>
					<host>10.2.0.151</host>
					<port>9000</port>
					<user>default</user>
					<password>default</password>
				</replica>
				<replica>
					<host>10.2.0.152</host>
					<port>9001</port>
					<user>default</user>
					<password>default</password>
				</replica>
			</shard>
			<shard>
				<weight>1</weight>
				<internal_replication>true</internal_replication>
				<replica>
					<host>10.2.0.152</host>
					<port>9000</port>
					<user>default</user>
                    <password>default</password>
				</replica>
				<replica>
					<host>10.2.0.153</host>
					<port>9001</port>
					<user>default</user>
					<password>default</password>
				</replica>
			</shard>
			<shard>
				<weight>1</weight>
				<internal_replication>true</internal_replication>
				<replica>
					<host>10.2.0.153</host>
					<port>9000</port>
					<user>default</user>
                    <password>default</password>
				</replica>
				<replica>
					<host>10.2.0.151</host>
					<port>9001</port>
					<user>default</user>
                    <password>default</password>
				</replica>
			</shard>
		</enic_cluster>
    </remote_servers>

# 配置zookeeper
<zookeeper>
	<node index="1">
		<host>ip1</host>
		<port>2181</port>
	</node>
	<node index="2">
		<host>ip2</host>
		<port>2181</port>
	</node>
	<node index="3">
		<host>ip3</host>
		<port>2181</port>
	</node>
</zookeeper>

# 配置macros
<macros>
    <shard>03</shard>
    <replica>03-2</replica>
</macros>

注意点

1.创建文件夹,副本集要用到,如果服务器多,那就不需要了。。
mkdir /var/lib/clickhouse2
mkdir /var/log/clickhouse-server2
chown -R clickhouse:clickhouse /var/lib/clickhouse2
chown -R clickhouse:clickhouse /var/log/clickhouse-server2
2.更改interserver_http_host,用ip需要改
3.更改macros
4.更改端口,日志路径

启动clickhouse服务

# 启动
sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config.xml &
sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config2.xml &
# 停止
用ps -ef|grep clickhouse
kill -9
用dbeaver连接测试
SELECT * FROM system.clusters WHERE cluster = 'enic_cluster'

在这里插入图片描述

测试

# 创建工作空间
CREATE DATABASE test_database ON CLUSTER enic_cluster;

# 创建副本表
create table test_database.test_table on cluster enic_cluster(
    `id` Int64 COMMENT '主键',
    ...
    `dt` String COMMENT '日期'
    )ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/default/test','{replica}')
 PARTITION BY dt
ORDER BY id
SETTINGS index_granularity = 8192;

# 创建分布式表
CREATE TABLE test_database.test_table_all ON CLUSTER enic_cluster  engine = Distributed(enic_cluster, test_database, test_table ,rand());

查询,新增直接在分布式表操作就可以了~
数据分析职业是一个多金的职业,数据分析职位是一个金饭碗的职位,前景美好,但是要全面掌握大数据分析技术,非常困难,大部分学员的痛点是不能快速找到入门要点,精准快速上手。本课程采用项目驱动的方式,以Spark3和Clickhouse技术为突破口,带领学员快速入门Spark3+Clickhouse数据分析,促使学员成为一名高效且优秀的大数据分析人才。学员通过本课程的学习,不仅可以掌握使用Python3进行Spark3数据分析,还会掌握利用Scala/java进行Spark数据分析,多语言并进,力求全面掌握;另外通过项目驱动,掌握Spark框架的精髓,教导Spark源码查看的技巧;会学到Spark性能优化的核心要点,成为企业急缺的数据分析人才;更会通过Clickhouse和Spark搭建OLAP引擎,使学员对大数据生态圈有一个更加全面的认识和能力的综合提升。真实的数据分析项目,学完即可拿来作为自己的项目经验,增加面试谈薪筹码。课程涉及内容:Ø  Spark内核原理(RDD、DataFrame、Dataset、Structed Stream、SparkML、SparkSQL)Ø  Spark离线数据分析(千万简历数据分析、雪花模型离线数仓构建)Ø  Spark特征处理及模型预测Ø  Spark实时数据分析(Structed Stream)原理及实战Ø  Spark+Hive构建离线数据仓库(数仓概念ODS/DWD/DWS/ADS)Ø  Clickhouse核心原理及实战Ø  Clickhouse engine详解Ø  Spark向Clickhouse导入简历数据,进行数据聚合分析Ø  catboost训练房价预测机器学习模型Ø  基于Clickhouse构建机器学习模型利用SQL进行房价预测Ø  Clickhouse集群监控,Nginx反向代理Grafana+Prometheus+Clickhouse+node_exporterØ  Spark性能优化Ø  Spark工程师面试宝典       课程组件:集群监控:福利:本课程凡是消费满359的学员,一律送出价值109元的实体书籍.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值