clickhouse集群模式搭建

clickhouse server安装

1.检查是否支持SSE 4.2:
grep -q sse4_2 /proc/cpuinfo && echo “SSE 4.2 supported” || echo “SSE 4.2 not supported”

2.安装依赖
sudo yum install -y curl

3.下载运行脚本(centos7显式指定os=centos dist=7两个参数)
curl -s https://packagecloud.io/install/repositories/altinity/clickhouse/script.rpm.sh | sudo os=centos dist=7 bash

4.查看clickhouse可用安装包,并安装
yum list ‘clickhouse*’
yum install -y clickhouse-server clickhouse-client
yum list installed ‘clickhouse*’ #查看安装

5.配置文件默认目录
/etc/clickhouse-server/ #配置文件路径在,通过查看配置文件 /etc/clickhouse-server/config.xml 可以看到其他配置

/var/lib/clickhouse #数据目录
/var/lib/clickhouse/tmp/ #临时目录
/var/log/clickhouse-server #日志目录
/etc/rc.d/init.d/clickhouse-server #默认启动脚本
/etc/security/limits.d/clickhouse.conf #最大打开文件数
/etc/cron.d/clickhouse-server #定时任务文件,cron进程执行时,就会自动扫描该目录下的所有文件,按照文件中的时间设定执行后面的命令
/usr/bin/clickhouse* #二进制文件目录
/usr/share/clickhouse/ #共享文件目录:

6.如有需求修改端口等,需要修改/etc/clickhouse-server/config.xml文件
8123->28123
9000->29000
9004->29004
9009->29009

7.修改IP 127.0.0.1-> 本机IP

8.启动
#服务端启动
service clickhouse-server start
service clickhouse-server stop
/etc/init.d/clickhouse-server start
/etc/init.d/clickhouse-server stop
sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config.xml #单节点多实例多配置文件启动方式
nohup sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config.xml >/var/log/clickhouse.log 2>&1 & #后台开启
#客户端启动
clickhouse-client #默认为9000
clickhouse-client --port=9099

clickhouse集群配置

#集群配置钱每天节点上都要安装好clickhouse server
1.修改 /etc/clickhouse-server/config.xml 配置文件
#放开远程主机监听
<listen_host>::1</listen_host> #如果没有IPV6 注释这行
<listen_host>0.0.0.0</listen_host> # IPv4

2.创建 metrika.xml 集群配置文件 参考https://www.jianshu.com/p/5f7809b1965e
#默认路径为/etc/metrika.xml,但是在config可以配置路径

<include_from>  /etc/clickhouse-server/metrica.xml  </include_from>

全文配置

<yandex>
<clickhouse_remote_servers>
    <test_cluster>             #集群名称
        <shard>                #数据分片1(节点1)
             <internal_replication>true</internal_replication>
            <replica>
                <host>10.10.10.99</host>
                <port>9099</port>
            </replica>
        </shard>
        <shard>                #数据分片2(节点2)
            <replica>
                <internal_replication>true</internal_replication>
                <host>10.10.10.100</host>
                <port>9099</port>
            </replica>
        </shard>
    </test_cluster>
</clickhouse_remote_servers>


<zookeeper-servers>       #ZK配置
  <node index="1">
    <host>10.10.10.98</host>
    <port>2181</port>
  </node>

  <node index="2">
    <host>10.10.10.99</host>
    <port>2181</port>
  </node>
  <node index="3">
    <host>10.10.10.100</host>
    <port>2181</port>
  </node>
</zookeeper-servers>

<macros>             #本机IP
    <replica>10.10.10.99</replica>
</macros>

<networks>          #监听网络,::/0代表监听所有ip
   <ip>::/0</ip>
</networks>

<clickhouse_compression>     #数据压缩算法
<case>
  <min_part_size>10000000000</min_part_size>
  <min_part_size_ratio>0.01</min_part_size_ratio>                                                                                                                                       
  <method>lz4</method>
</case>
</clickhouse_compression>
</yandex>

–分布式集群测试
drop table ontime_local;
drop table ontime_all;
#创建表
CREATE TABLE ontime_local (FlightDate Date,Year UInt16) ENGINE = MergeTree(FlightDate, (Year, FlightDate), 8192);
CREATE TABLE ontime_all AS ontime_local ENGINE = Distributed(test_cluster, default, ontime_local, rand());
#插入测试数据
insert into ontime_all (FlightDate,Year)values(‘2001-10-12’,2001);
insert into ontime_all (FlightDate,Year)values(‘2002-10-12’,2002);
insert into ontime_all (FlightDate,Year)values(‘2002-10-12’,2003);
#可以发现所有节点上的ontime_all都有数据
select * from ontime_local;
select * from ontime_all;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值