typora-root-url: assets 安装单机版的clickhouse
sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo sudo yum install -y clickhouse-server clickhouse-client sudo /etc/init.d/clickhouse-server start clickhouse-client # or "clickhouse-client --password" if you set up a password.
如果想使用最新版本,请将repo文件中stable版本关闭testing版本打开(建议在您的测试环境中使用)。prestable有时也可用
1)修改配置/etc/clickhouse-server/config.xml 1、开放远程连接:clickhouse分布式集群:: 2、数据目录改为服务器最大的数据盘,如此处是/data2:/data2/clickhouse/ /data2/clickhouse/tmp/ /data2/clickhouse/user_files/ /data2/clickhouse/format_schemas/ 2) 其他优化配置项修改 1、配置日志文件切割 (100M做一个切割,ClickHouse存储的已归档日志文件的数量 设置为 10),配置文件:/etc/clickhouse-server/config.xml 修改如下:100M 10 2、配置允许的文件导入的错误数(放到配置项后面): 100 3、配置连接超时时间参数 vim /etc/clickhouse-server/config.xml 修改如下参数:900 600 4、是否使用未压缩块的缓存,提升短查询速度。接受0或1。默认情况下0(禁用),改为1 修改:0 为1 5、修改单个查询使用的最大内存限制20000000000 6、添加如下参数 至参数后面 80000000000 3)修改默认账号密码 1、配置账号密码: vim /etc/clickhouse-server/users.xml 修改:为 mypasswd123
集群规划
192.168.222.130 hdp001 关防火墙, host映射, 时钟同步 JDK, Zookeeper clickhouse-server 9100
192.168.222.131 hdp002 关防火墙, host映射, 时钟同步 JDK, Zookeeper clickhouse-server 9100
192.168.222.132 hdp003 关防火墙, host映射, 时钟同步 JDK, Zookeeper clickhouse-server 9100
关于机器之前的免密、关防火墙、host映射、时钟同步以及JDK和Zookeeper的安装步骤,这里就不再介绍了。
先按照上面单机模式的部署在hdp001、hdp002、hdp003上部署安装clickhouse。
部署完毕后在hdp001的环境上修改clickhouse的配置文件的如下项:
vim /etc/clickhouse-server/config.xml:: #开放远程连接,单机部署的时候已设置过,需要再次确认这个配置是否打开 #集群配置#集群名称,可随意定义,这里是默认名称 #ZK配置hdp001 #节点1主机名或者填主机IP,根据实际修改9100 #节点1的clickhouse端口号,根据实际修改hdp002 #节点2主机名或者填主机IP,根据实际修改9100 #节点2的clickhouse端口号,根据实际修改hdp003 #节点3主机名或者填主机IP,根据实际修改9100 #节点3的clickhouse端口号,根据实际修改hdp001 #ZK节点1主机名或者填主机IP,根据实际修改2181 #ZK端口号,根据实际修改hdp002 #ZK节点2主机名或者填主机IP,根据实际修改2181 #ZK端口号,根据实际修改hdp003 #ZK节点3主机名或者填主机IP,根据实际修改2181 #ZK端口号,根据实际修改
修改完配置文件以后,分发到其他的两个节点上,更改权限,启动hdp001上的clickhouse
scp config.xml root@hdp002:/etc/clickhouse-server/ scp config.xml root@hdp002:/etc/clickhouse-server/ chown clickhouse:clickhouse /etc/clickhouse-server/ -R #启动clickhouse时,不能用root用户,需用clickhouse用户。 sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config.xml
确保hdp001上的clickhouse启动没有以后,可以用以下命令启动其他两个节点的clickhouse
nohup sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config.xml &
查看端口,验证clickhouse是否成功启动
打开client
clickhouse-client --host="127.0.0.1" --port="9100" --user="default" --password="dtsw1234"
输入sql语句查看集群
select * from system.clusters;
可以看到test_cluster就是我们定义的集群名称,一共有三个分片,每个分片有一份数据。剩下的为配置文件默认自带的集群配置。
测试分布式集群在hdp001、hdp002、hdp003 分别创建本地表cluster3s1r_local
CREATE TABLE default.cluster3s1r_local (`id` Int32,`website` String,`wechat` String,`FlightDate` Date,Year UInt16)ENGINE = MergeTree(FlightDate, (Year, FlightDate), 8192);
在node01节点上创建分布式表
CREATE TABLE default.cluster3s1r_all AS cluster3s1r_local ENGINE = Distributed(test_cluster, default, cluster3s1r_local, rand());
往分布式表cluster3s1r_all插入数据,cluster3s1r_all会随机插入到三个节点的cluster3s1r_local里
插入数据
INSERT INTO default.cluster3s1r_all (id,website,wechat,FlightDate,Year)values(1,'https://www.baidu.com/','clickhouse部署','2022-07-20',2022); INSERT INTO default.cluster3s1r_all (id,website,wechat,FlightDate,Year)values(2,'http://www.merryyo.cn/','clickhouse集群','2022-07-20',2022); INSERT INTO default.cluster3s1r_all (id,website,wechat,FlightDate,Year)values(3,'http://www.xxxxx.cn/','xxxxx','2022-07-20',2020);
查询分布式表和本地表
select * from cluster3s1r_all; select * from cluster3s1r_local;
hdp001
hdp002
hdp003



