禁用透明大页
   
    编辑
    
     /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" 1
    紧接着执行生效命令
    
     
      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
    
    安装包
   
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
     
    
    文件
   
    在
    
     
      <users><default><password></password>
     
    
    里加上密码
   
    把
    
     
      <users><default>
     
    
    下的
    
     
      <access_management>1</access_management>
     
    
    的注释给取消掉
   
    修改
    
     
      config.xml
     
    
    文件 在
    
     
      <clickhouse><listen_host></listen_host>
     
    
    里改成
    
     0.0.0.0
    
    在
    
     
      <clickhouse><level>trace</level>
     
    
    里改成
    
     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
     
    
    ,在
    
     
      <clickhouse>
     
    
    节点里的最后面添加上一行
   
<yandex><include_from>/etc/clickhouse-server/config.d/metrika-shard.xml</include_from></yandex>
    
     
      /etc/clickhouse-server/config.d/metrika-shard.xml
     
    
    文件里这样配置:
   
<?xml version="1.0"?><yandex><clickhouse_remote_servers><gmall_cluster><!-- 集群名称--><shard><!--集群的第1个分片--><internal_replication>true</internal_replication><replica><!--该分片的第1个副本--><host>hadoop101</host><port>9000</port></replica></shard><shard><!--集群的第2个分片--><internal_replication>true</internal_replication><replica><!--该分片的第1个副本--><host>hadoop102</host><port>9000</port></replica></shard><shard><!--集群的第3个分片--><internal_replication>true</internal_replication><replica><!--该分片的第1个副本--><host>hadoop103</host><port>9000</port></replica></shard></gmall_cluster></clickhouse_remote_servers><zookeeper-servers><node index="1"><host>hadoop101</host><port>2181</port></node><node index="2"><host>hadoop102</host><port>2181</port></node><node index="3"><host>hadoop103</host><port>2181</port></node></zookeeper-servers><macros><shard>01</shard><!--不同机器放的分片数不一样--><replica>rep_01</replica><!--不同机器放的副本数不一样--></macros></yandex>
?重要:
在每个节点要配置不同的
<macros><shard>
和
<macros><replica>
值
    分片副本表测试
   
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; 
