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;