赞
踩
关闭防火墙:systemctl stop firewalld.service
查看防火墙:systemctl status firewalld.service
先看一下系统默认的文件数和进程数分别为1024和4096,因为Clickhouse是特备耗CPU性能的,在查询的过程中可能会遇到进程数增加等情况,所以我们先把文件和进程数调大些。
1)sudo vi /etc/security/limits.conf,在文件中加入以下内容
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
其中 * 代表限制的是所有用户所有组
soft和hard代表的是文件或进程的上限/下线数量
nofile和noproc代表的是文件和进程
走后一列代表的是文件和进程的数量
2) sudo vi /etc/security/limits.d/20-nproc.conf 在文件的末尾追加上上述同样的内容后保存退出。
3) 将刚才两个文件使用同步脚本xsync同步到集群的其他两台节点上
注意同步的时候必须要加上sudo ,因为我们同步的是系统路径。
(或者不同步的话你也可以一台一台的在另外两台节点上修改刚才的配置)
sudo /home/mo/bin/xsync /etc/security/limits.conf
sudo /home/mo/bin/xsync /etc/security/limits.d/20-nproc.conf
集群中三台节点上全部安装下面的依赖
sudo yum install -y libtool
sudo yum install -y *unixODBC*
没改之前的
修改/etc/selinux/config中的SELINUX=disabled
文件同步
sudo /home/mo/bin/xsync /etc/selinux/config
然后在三台节点上使用sudo setenforce 0来临时关闭selinux
如下图这时的状态便更新过来了
sudo rpm -ivh *.rpm
下载地址https://repo.yandex.ru/clickhouse/rpm/stable/x86_64/
在安装的过程中会出现让我们设置密码,为了方便我这里就不设置密码了直接回车就可以了
将主节点上的四个RPM包分发到剩余的两个节点上去 ,然后也sudo rpm -ivh *.rpm
进行安装一下。
修改config.xml文件使ClickHouse被除本机以外的服务器访问
sudo vi /etc/clickhouse-server/config.xml
大概在文件的156行,将listen前后的注释去掉
在这个文件中,还有ClickHouse的一些默认比较重要的配置,(不过以下内容不建议去修改当做一个了解)
数据文件路径:
日志文件路径:/var/log/clickhouse-server/clickhouse-server.log
错误日志文件路径:/var/log/clickhouse-server/clickhouse-server.err.log
sudo /home/mo/bin/xsync /etc/clickhouse-server/config.xml
注意注意!!!
注意分配好先别启动,如果集群上部署了hadoop的话还要在config.xml文件中修改下ck的端口号,这里我修改为9111,不然的话会和hadoop的namenode端口冲突一定要注意,但是你集群中没有部署hadoop的话则可以忽略这步了
启动 sudo systemctl start clickhouse-server 或 sudo clickhouse-server start
关闭 sudo systemctl stop clickhouse-server 或 sudo clickhouse-server stop
重启 sudo systemctl restart clickhouse-server 或 sudo clickhouse-server restart
查看状态 sudo systemctl status clickhouse-server 或 sudo clickhouse-server status
启动好以后可以进行客户端连接
clickhouse-client --port 9111 -m
注意这里如果刚才你没有修改默认端口号的话可以不用加–port 9111
1). 安装zookeeperhttps://blog.csdn.net/weixin_44080445/article/details/106331510
2).在node102的/etc/clickhouse-server/config.d目录下创建一个名为metrika.xml的配置文件并加上如下内容(为了方便进入这个config.d目录我们可以暂时切换为root用户),这里根据自己的主机名来更改下面的内容
<?xml version="1.0"?> <yandex> <zookeeper-servers> <node index="1"> <host>node102</host> <port>2181</port> </node> <node index="2"> <host>node103</host> <port>2181</port> </node> <node index="3"> <host>node104</host> <port>2181</port> </node> </zookeeper-servers> </yandex>
3).同步到node103和node104上
sudo /home/mo/bin/xsync /etc/clickhouse-server/config.d/metrika.xml
同步好以后千万别忘记在每台节点上手动改变下metrika.xml的所有者
4).在 node102的/etc/clickhouse-server/config.xml中增加如下内容
<zookeeper incl="zookeeper-servers" optional="true" />
<include_from>/etc/clickhouse-server/config.d/metrika.xml</include_from>
同步到另外两台节点上
sudo /home/mo/bin/xsync /etc/clickhouse-server/config.xml
5).退到普通用户并重启clickhouse ,然后三台节点上都启动zookeeper
(因为副本只能同步数据,不能同步表结构,所以我们需要在每台机器上自己手动建表)
6). 在node102,node103,node104上分别建表
这里每台主机都暂时选在default库中建下表.
node102:
create table t_order_rep2 (
id UInt32,
sku_id String,
total_amount Decimal(16,2),
create_time Datetime
) engine =ReplicatedMergeTree('/clickhouse/table/01/t_order_rep','rep_102')
partition by toYYYYMMDD(create_time)
primary key (id)
order by (id,sku_id);
node103:
create table t_order_rep2 (
id UInt32,
sku_id String,
total_amount Decimal(16,2),
create_time Datetime
) engine =ReplicatedMergeTree('/clickhouse/table/01/t_order_rep','rep_103')
partition by toYYYYMMDD(create_time)
primary key (id)
order by (id,sku_id);
node104:
create table t_order_rep2 (
id UInt32,
sku_id String,
total_amount Decimal(16,2),
create_time Datetime
) engine =ReplicatedMergeTree('/clickhouse/table/01/t_order_rep','rep_104')
partition by toYYYYMMDD(create_time)
primary key (id)
order by (id,sku_id);
对以上ReplicatedMergeTree中两个参数的解释
第一个参数是分片的zk_path一般按照: /clickhouse/table/{shard}/{table_name} 的格式写,如果只有一个分片就写01即可。
第二个参数是副本名称,相同的分片副本名称不能相同。
7). 在ndoe102上执行insert语句(只在102上执行就可以,103和104不需要执行)
insert into t_order_rep2 values
(101,'sku_001',1000.00,'2020-06-01 12:00:00'),
(102,'sku_002',2000.00,'2020-06-01 12:00:00'),
(103,'sku_004',2500.00,'2020-06-01 12:00:00'),
(104,'sku_002',2000.00,'2020-06-01 12:00:00'),
(105,'sku_003',600.00,'2020-06-02 12:00:00');
插入以后在node103,node104上都可以查看到数据,这里说明已经成功部署好了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。