禁用透明大页

编辑 /etc/default/grub文件,在 GRUB_CMDLINE_LINUX 行最后加上 transparent_hugepage=never ,例如:

GRUB_CMDLINE_LINUX="rd.lvm.lv=centos_wjwcentos7/root rd.lvm.lv=centos_wjwcentos7/swap rhgb quiet transparent_hugepage=never"

紧接着执行生效命令grub2-mkconfig -o /boot/grub2/grub.cfg, 然后重启!

安装Clickhouse之前需要安装相关依赖包,否则会报错

yum install -y libtool

yum install -y *unixODBC*

yum install -y libicu.x86_64

#可选

yum install -y perl-JSON.noarch

RPM安装包

推荐使用CentOS、RedHat和所有其他基于rpm的Linux发行版的官方预编译rpm包。

首先,您需要添加官方存储库:

yum install -y yum-utils

yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo

yum install -y clickhouse-server clickhouse-client

/etc/init.d/clickhouse-server start

clickhouse-client # or "clickhouse-client --password" if you set up a password.

修改Clickhouse配置文件

clickhouse的server配置文件,默认路径在/etc/clickhouse-server/config.xml及user.xml,

config.xml是clickhouse的系统配置,包括日志,服务部署ip,zk等配置 user.xml 是当前节点服务的配置,包括用户名密码,内存大小限制等

修改 users.xml 文件

里加上密码

下的1的注释给取消掉

修改 config.xml 文件 在 里改成 0.0.0.0

trace 里改成 warning

提示: 一般是IPV4,如果IPV6改成 ::

启动Clickhouse 或者关闭Clickhouse

# 动Clickhouse

sudo service clickhouse-server start

# 止Clickhouse

sudo service clickhouse-server stop

# 重启Clickhouse

sudo service clickhouse-server restart

# 查看服务状态

service clickhouse-server status

#设置开机自启

systemctl enable clickhouse-server

#查看开机自启是否成功

systemctl is-enabled clickhouse-server

防火墙设置

firewall-cmd --zone=public --add-port=8123/tcp --permanent

firewall-cmd --zone=public --add-port=9000/tcp --permanent

firewall-cmd --zone=public --add-port=9009/tcp --permanent

#防火墙重新加载

firewall-cmd --reload

#查看放行的端口

firewall-cmd --list-ports

客户端连接Clickhouse

clickhouse-client –host 192.168.152.128 –port 9000 –database default –user default –password ""

集群部署

ClickHouse集群是一个同质集群。 设置步骤:

在群集的所有机器上安装ClickHouse服务端需要Zookeeper集群在配置文件中设置集群配置在每个实例上创建本地表创建一个分布式表

分布式表实际上是一种view,映射到ClickHouse集群的本地表。 从分布式表中执行SELECT查询会使用集群所有分片的资源。 您可以为多个集群指定configs,并创建多个分布式表,为不同的集群提供视图。

具有三个分片,每个分片一个副本的集群的示例配置:

每个节点上都要修改主配置文件: /etc/clickhouse-server/config.xml,在节点里的最后面添加上一行

/etc/clickhouse-server/config.d/metrika-shard.xml

/etc/clickhouse-server/config.d/metrika-shard.xml文件里这样配置:

true

hadoop101

9000

true

hadoop102

9000

true

hadoop103

9000

hadoop101

2181

hadoop102

2181

hadoop103

2181

01

rep_01

重要: 在每个节点要配置不同的

分片副本表测试

1、在个节点上执行建库、建表语句

ReplicatedMergeTree 创建的本地表元数据不会同步到副本节点和集群中的其他节点;

# 创建测试库

create database dd;

# 创建测试副本表

create table dd.mm on cluster gmall_cluster (

id UInt32,

sku_id String,

total_amount Decimal(16,2),

create_time Datetime

) engine =ReplicatedMergeTree('/clickhouse/tables/dd/{shard}/mm1','{replica}')

partition by toYYYYMMDD(create_time)

primary key (id)

order by (id,sku_id);

1、这种方式不需要每台节点都执行命令,在集群中一个节点执行就可以 2、但是刚建完show tables 看不到,但是select可以查询到数据,system.replicas表也有记录

2、查询系统元数据

select total_replicas,table,engine,database,is_leader,zookeeper_path,replica_name,replica_path

from system.replicas;

3、插入数据

insert into dd.mm values

(101,'sku_001',1000.00,'2020-06-02 12:00:01') ,

(102,'sku_002',2000.00,'2020-06-02 12:00:01') ,

(103,'sku_004',2500.00,'2020-06-02 12:00:01') ,

(104,'sku_002',2000.00,'2020-06-01 12:00:00') ,

(105,'sku_003',600.00 ,'2020-06-02 12:00:00');

常用命令

1. 集群命令

systemctl start clickhouse-server

systemctl status clickhouse-server

systemctl stop clickhouse-server

2. 常用SQL

# 手动合并数据块

OPTIMIZE TABLE dd.ttl2 FINAL;

# 删除表

drop table dd.ttl2;

# 删除表

drop table dd.ttl2 on cluster;

# 查看表描述

desc dd.ttl2

# 查看建表语句

show create table dd.mm1;

查看原文