1.1 什么是ClickHouse

ClickHouse 是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。

1.2 什么是列式存储

以下面的表为例:

Id Name Age
1 张三 18
2 李四 22
3 王五 34

采用行式存储时,数据在磁盘上的组织结构为:

1 张三 18 2 李四 22 3 王五 34

好处是想查某个人所有的属性时,可以通过一次磁盘查找加顺序读取就可以。但是当想查所有人的年龄时,需要不停的查找,或者全表扫描才行,遍历的很多数据都是不需要的。

而采用列式存储时,数据在磁盘上的组织结构为:

1 2 3 张三 李四 王五 18 22 34

这时想查所有人的年龄只需把年龄那一列拿出来就可以了

一、CentOS7安装ClickHouse

1.1 安装前准备

1.1.1 CentOS取消打开文件数限制

在/etc/security/limits.conf、/etc/security/limits.d/90-nproc.conf这2个文件的末尾加入一下内容:

[root@master ~]# vim /etc/security/limits.conf

在文件末尾添加:

*       soft    nofile  65536

*       hard    nofile  65536

*       soft    nproc   131072

*       hard    nproc   131072

[root@master ~]# vim /etc/security/limits.d/20-nproc.conf

在文件末尾添加:
* soft nofile 65536 * hard nofile 65536 * soft nproc 131072 * hard nproc 131072

重启服务器之后生效,用 ulimit -n 或者 ulimit -a 查看设置结果

1.1.2 CentOS取消SELINUX

修改/etc/selinux/config中的SELINUX=disabled后重启

[root@master ~]# vim /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protect
ed. # mls - Multi Level Security protection.
SELINUXTYPE=targeted

1.1.3 关闭防火墙

1、命令行界面输入命令“systemctl status firewalld.service”并按下回车键。

2、然后在下方可度以查看得到“active(running)”,此时说明防火墙已经被打开了。

3、在命令行中输入systemctl stop firewalld.service命令,进行关闭防火墙。

4、然后再使用命令systemctl status firewalld.service,在下方出现disavtive(dead),这权样就说明防火墙已经关闭。

5、再在命令行中输入命令“systemctl disable firewalld.service”命令,即可永久关闭防火墙。

1.2 单机安装

1 网址

官网:https://clickhouse.yandex/

下载地址:http://repo.red-soft.biz/repos/clickhouse/

2 单机模式

大数据培训之ClickHouse安装

2.1 上传个文件到linux

[root@master clickhouse_softs]# ll
总用量 34636
-rw-r--r-- 1 root root 6376 3月 10 14:32 clickhouse-client-19.7.3.9-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 25990492 3月 10 14:32 clickhouse-common-static-19.7.3.9-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 9453456 3月 10 14:32 clickhouse-server-19.7.3.9-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 9944 3月 10 14:32 clickhouse-server-common-19.7.3.9-1.el7.x86_64.rpm

2.2分别安装这5个rpm文件

[root@master clickhouse_softs]# rpm -ivh *.rpm
准备中... ################################# [100%]
正在升级/安装...
1:clickhouse-server-common-19.7.3.9################################# [ 25%]
2:clickhouse-common-static-19.7.3.9################################# [ 50%]
3:clickhouse-server-19.7.3.9-1.el7 ################################# [ 75%]
Create user clickhouse.clickhouse with datadir /var/lib/clickhouse
4:clickhouse-client-19.7.3.9-1.el7 ################################# [100%]
Create user clickhouse.clickhouse with datadir /var/lib/clickhouse

2.3 启动ClickServer

[root@master clickhouse_softs]# service clickhouse-server start
Start clickhouse-server service: Path to data directory in /etc/clickhouse-server/config.xml: /var/lib/clickhouse/DONE

2.2.4 使用client连接server

[root@master clickhouse_softs]# clickhouse-client
ClickHouse client version 19.7.3.1.
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 19.7.3 revision 54419. master :)
master :)
master :) quit
Bye.

1.3 分布式集群安装

1.3.1 另外几台机器同样需要做安装前准备

1.3.2 将4个rpm包上传到另外几台机器

1.3.3 分别安装

[root@node01 clickhouse_softs]# ll
总用量 0
[root@node01 clickhouse_softs]# rpm -ivh *.rpm
准备中... ################################# [100%]
正在升级/安装...
1:clickhouse-server-common-19.7.3.9################################# [ 25%]
2:clickhouse-common-static-19.7.3.9################################# [ 50%]
3:clickhouse-server-19.7.3.9-1.el7 ################################# [ 75%]
Create user clickhouse.clickhouse with datadir /var/lib/clickhouse
4:clickhouse-client-19.7.3.9-1.el7 ################################# [100%]
Create user clickhouse.clickhouse with datadir /var/lib/clickhouse
[root@node02 clickhouse_softs]# rpm -ivh *.rpm
准备中... ################################# [100%]
正在升级/安装...
1:clickhouse-server-common-19.7.3.9################################# [ 25%]
2:clickhouse-common-static-19.7.3.9################################# [ 50%]
3:clickhouse-server-19.7.3.9-1.el7 ################################# [ 75%]
Create user clickhouse.clickhouse with datadir /var/lib/clickhouse
4:clickhouse-client-19.7.3.9-1.el7 ################################# [100%]
Create user clickhouse.clickhouse with datadir /var/lib/clickhouse

1.3.4 每台机器修改config.xml文件 ,将<listen_host>::</listen_host>注释放开即可

[root@node02 clickhouse_softs]# vim /etc/clickhouse-server/config.xml
<!-- Port for communication between replicas. Used for data exchange. -->
<interserver_http_port>9009</interserver_http_port> <!-- Hostname that is used by other replicas to request this server.
If not specified, than it is determined analoguous to 'hostname -f' command.
This setting could be used to switch replication to another network interface.
-->
<!--
<interserver_http_host>example.yandex.ru</interserver_http_host>
--> <!-- Listen specified host. use :: (wildcard IPv6 address), if you want to accept connections both with IPv4 and IPv6 from everywhere. -->
<listen_host>::</listen_host>
<!-- Same for hosts with disabled ipv6: -->
<!-- <listen_host>0.0.0.0</listen_host> --> <!-- Default values - try listen localhost on ipv4 and ipv6: -->

1.3.5 每台机器创建metrika.xml

[root@node02 clickhouse_softs]# vim /etc/metrika.xml

内容如下:

<yandex>
<clickhouse_remote_servers>
<clickhouse_cluster>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>master</host> (第一台服务器的主机名或ip)
<port>9000</port>
</replica>
</shard>
<shard>
<replica>
<internal_replication>true</internal_replication>
<host>node01</host> (第二台服务器的主机名或ip)
<port>9000</port>
</replica>
</shard>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>node02</host> (第三台服务器的主机名或ip)
<port>9000</port>
</replica>
</shard>
</clickhouse_cluster>
</clickhouse_remote_servers> <zookeeper-servers>
<node index="1">
<host>master</host> (第一台服务器的主机名或ip)
<port>2181</port>
</node>
<node index="2">
<host>node01</host> (第二台服务器的主机名或ip)
<port>2181</port>
</node>
<node index="3">
<host>node02</host> (第三台服务器的主机名或ip)
<port>2181</port>
</node>
</zookeeper-servers> <macros>
<replica>node02</replica> (里要写本机的地址,另外两台记得改为对应的地址)
</macros> <networks>
<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>

1.3.6 每台机器先启动zookeeper

[root@node02 soft]# zkServer.sh start
JMX enabled by default
Using config: /usr/local/soft/zookeeper-3.4.6/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

1.3.7 每台机器启动clickhouse

[root@node01 soft]# service clickhouse-server start
Start clickhouse-server service: Path to data directory in /etc/clickhouse-server/co
nfig.xml: /var/lib/clickhouse/DONE

1.3.8 验证,进入client

[root@master soft]# clickhouse-client -m
ClickHouse client version 19.7.3.1.
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 19.7.3 revision 54419. master :)

1.3.9 验证集群是否创建成功,输入 select * from system.clusters;

master :) select * from system.clusters;

SELECT *
FROM system.clusters ┌─cluster───────────────────────────┬─shard_num─┬─shard_weight─┬─replica_num─┬─host_name─┬─host_address───┬─port─┬─is_local─┬─user────┬─default_database─┐
│ clickhouse_cluster │ 1 │ 1 │ 1 │ master │ 192.168.41.105 │ 9000 │ 1 │ default │ │
│ clickhouse_cluster │ 2 │ 1 │ 1 │ node01 │ 192.168.41.106 │ 9000 │ 0 │ default │ │
│ clickhouse_cluster │ 3 │ 1 │ 1 │ node02 │ 192.168.41.107 │ 9000 │ 0 │ default │ │
│ test_cluster_two_shards_localhost │ 1 │ 1 │ 1 │ localhost │ ::1 │ 9000 │ 1 │ default │ │
│ test_cluster_two_shards_localhost │ 2 │ 1 │ 1 │ localhost │ ::1 │ 9000 │ 1 │ default │ │
│ test_shard_localhost │ 1 │ 1 │ 1 │ localhost │ ::1 │ 9000 │ 1 │ default │ │
│ test_shard_localhost_secure │ 1 │ 1 │ 1 │ localhost │ ::1 │ 9440 │ 0 │ default │ │
│ test_unavailable_shard │ 1 │ 1 │ 1 │ localhost │ ::1 │ 9000 │ 1 │ default │ │
│ test_unavailable_shard │ 2 │ 1 │ 1 │ localhost │ ::1 │ 1 │ 0 │ default │ │
└───────────────────────────────────┴───────────┴──────────────┴─────────────┴───────────┴────────────────┴──────┴──────────┴─────────┴──────────────────┘ 9 rows in set. Elapsed: 0.001 sec.

CentOS7安装部署ClickHouse(单机版&&集群部署)的更多相关文章

  1. Clickhouse Docker集群部署

    写在前面 抽空来更新一下大数据的玩意儿了,起初架构选型的时候有考虑Hadoop那一套做数仓,但是Hadoop要求的服务器数量有点高,集群至少6台或以上,所以选择了Clickhouse(后面简称CH). ...

  2. Spark standalone安装(最小化集群部署)

    Spark standalone安装-最小化集群部署(Spark官方建议使用Standalone模式)        集群规划:    主机        IP                    ...

  3. NetCore在Centos7上部署和Nginx集群部署访问

    NetCore在Linux上部署 工具:WMWare虚拟机,Wmware12,CentOS7ISO镜像,VS2017 1.安装虚拟机,过程略,网上一搜一大把 2.用VS2017建一个NetCore的W ...

  4. CentOS7 安装kylin2.6.0集群

    1. 环境准备 zookeeper3.4.12 mysql5.7 hive2.3.4 hadoop2.7.3 JDK1.8 hbase1.3.3 2. 集群规划 ip地址 机器名 角色 192.168 ...

  5. centos7安装redis-4.0.1集群

    试验机操作系统:CentOS Linux release 7.2.1511 (Core) 本文的目的是教会大家快速搭建redis集群,完了再深入学习. 试问如果不上手试验,看的资料再多有个毛用? 下载 ...

  6. Linux Centos7.5中的RocketMQ集群部署

    系统环境 Docker > centos7.5 此镜像已经安装了jdk1.8和maven3.6.0 如果你想知道这个基础镜像的具体情况, 参考此文: https://www.cnblogs.co ...

  7. Redis的安装配置及简单集群部署

    最近针对中铁一局项目,跟事业部讨论之后需要我们的KF平台能够接入一些开源的数据库,于是这两天研究了一下Redis的原理. 1. Redis的数据存储原理及简述 1.1Redis简述 Redis是一个基 ...

  8. Windows安装redis数据库以及集群部署

    1. 安装Redis版本:win-3.0.501https://github.com/MSOpenTech/redis/releases页面有,我下载的是zip版本的:Redis-x64-3.0.50 ...

  9. centos7安装elasticsearch6.3.x集群并破解安装x-pack

    一.环境信息及安装前准备 主机角色(内存不要小于1G): 软件及版本(百度网盘链接地址和密码:链接: https://pan.baidu.com/s/17bYc8MRw54GWCQCXR6pKjg 提 ...

  10. docker 部署 HFish(集群部署)

    主节点部署: docker run -d --name hfish-master -p : -p : -p : -p : -p : -p : -p : -p : -p : -p : -p : -p : ...

随机推荐

  1. .NET开发规范v1.0

    一. 编程规范 (一) 命名风格 命名要找更有表现力的词,更专业的词,比如获取数据不用get而使用fetch 别害怕长名称,长而具有描述性的名称比短而令人费解的名称好 为作用域大的名字采用更长的名字, ...

  2. Kubernetes 可能是分布式架构的大结局了

    前两年在爬虫里折腾的太久了,最近快马加鞭追赶分布式架构潮流. SpringCloud.Dubbo.ServiceComb 刷完,以为分布式架构就是这样了.这批架构可能也就 Java 栈的人会感觉它们特 ...

  3. 解锁 Git Log 更多实用技巧

    目前,在软件开发的协作中,Git 无疑是版本控制的王者. 而其中的 git log 命令,犹如一把强大的历史探寻之剑,能够帮助我们深入洞察项目的演进历程. 本篇将为大家整理解读几个实用的 git Lo ...

  4. 【Python】【Jupyter】Jupyter 的简单使用 与 Python的基本输出输入

    上课无聊写着玩的,不必当真. Jupyter 的简单使用 与 Python的基本输出输入 目录 Jupyter 的简单使用 与 Python的基本输出输入 数据准备 输出 输入 一些练习 print( ...

  5. Socat 命令总结

    事以密成,语以泄败. 导航 介绍 基本语法 用法示例 回显输入 回显输入 over TCP/UDP 正向连接 shell 反向连接 shell 端口转发 网络服务 文件传输 管道传输 加密传输 TUN ...

  6. Gitea搭建

    关闭注册 找到gitea的配置文件gitea/conf/app.ini,把下面的设置改为true即可: [service] DISABLE_REGISTRATION = true 关闭openid [ ...

  7. SuperMap Objects .NET知识库:SQL查询以及通配符

    1     SQL 语句的构建 在SuperMap组件产品中,有许多接口都用到了过滤条件,也就是标准 SQL 语句中的 WHERE 子句部分,比如各种涉及属性查询的接口.网络分析中弧段的过滤条件.拓扑 ...

  8. HP 打印机驱动

    HP Universal Print Driver Series for Windows https://support.hp.com/cn-zh/drivers/selfservice/hp-uni ...

  9. LRU的map+双链表实现(Go描述)

    面云账户时候问了LRU,具体实现的方式是map+双链表.Set和Get的时间复杂度都是O(1).完整写一遍复习一下, 仅作记录 /** * @Author: lzw5399 * @Date: 2021 ...

  10. 《深入理解Mybatis原理》MyBatis配置解析过程

    配置解析主体方法 public Configuration parse() { if (parsed) { throw new BuilderException("Each XMLConfi ...