ClickHouse集群搭建(一)

满目山河空念远,落花风雨更伤春。
在这里插入图片描述

ClickHouse概述

什么是ClickHouse?

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

什么是列式存储 ?

以下面表为例

id website wechat
1 https://niocoder.com/ java干货
2 http://www.merryyou.cn/ javaganhuo

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

Row1 Row2
1 https://niocoder.com/ java干货 2 http://www.merryyou.cn/ javaganhuo

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

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

col1 col2 col3
1 2 https://niocoder.com/ http://www.merryyou.cn/ java干货 javaganhuo

这时想查所有记录的wechat只需把col3那一列拿出来即可。

集群环境搭建

在 安装ClickHouse 具体开始前, 先来搭建一下环境,软件包下载见末尾。

创建虚拟机

安装虚拟机 VMWare

安装Vmware虚拟机

导入 CentOS

将下载的CentOS系统中导入到 VMWare

注意事项:windows系统确认所有的关于VmWare的服务都已经启动,

确认好VmWare生成的网关地址,另外确认VmNet8网卡已经配置好了IP地址。

更多关于VmWare网络模式参考VMware虚拟机三种网络模式详解

集群规划
IP 主机名 环境配置 安装 ClickHouse
192.168.10.100 node01 关防火墙, host映射, 时钟同步 JDK, Zookeeper clickhouse-server 9000 clickhouse-server 9001
192.168.10.110 node02 关防火墙, host映射, 时钟同步 JDK, Zookeeper clickhouse-server 9000 clickhouse-server 9001
192.168.10.120 node03 关防火墙, host映射, 时钟同步 JDK, Zookeeper clickhouse-server 9000 clickhouse-server 9001

配置每台主机

更改ip地址和HWADDR地址

vim /etc/sysconfig/network-scripts/ifcfg-eth0
在这里插入图片描述

HWADDR地址查看

在这里插入图片描述

修改主机名(重启后永久生效)

在这里插入图片描述

vim /etc/hostname

设置hosts域名映射

在这里插入图片描述

vim /etc/hosts

关闭防火墙

三台机器执行以下命令

systemctl status firewalld.service #查看防火墙状态
systemctl stop firewalld.service #关闭防火墙
systemctl disable firewalld.service #永久关闭防火墙

免密登录

为了方便传输文件,三台机器之前配置免密登录.

  • 免密 SSH 登录的原理
    1. 需要先在 B节点 配置 A节点 的公钥
    2. A节点 请求 B节点 要求登录
    3. B节点 使用 A节点 的公钥, 加密一段随机文本
    4. A节点 使用私钥解密, 并发回给 B节点
    5. B节点 验证文本是否正确
三台机器生成公钥与私钥

在三台机器执行以下命令,生成公钥与私钥

ssh-keygen -t rsa

执行该命令之后,按下三个回车即可

在这里插入图片描述

拷贝公钥到node01机器

三台机器将拷贝公钥到node01机器

三台机器执行命令:

ssh-copy-id node01

复制node01机器的认证到其他机器

将第一台机器的公钥拷贝到其他机器上

node01机器上面执行以下命令

scp /root/.ssh/authorized_keys node02:/root/.ssh

scp /root/.ssh/authorized_keys node03:/root/.ssh

在这里插入图片描述

设置时钟同步服务
  • 为什么需要时间同步
    • 因为很多分布式系统是有状态的, 比如说存储一个数据, A节点 记录的时间是 1, B节点 记录的时间是 2, 就会出问题
## 安装
yum install -y ntp

## 启动定时任务
crontab -e

随后在输入界面键入

*/1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com;
安装JDK

上传jdk并解压然后配置环境变量

所有软件的安装路径

mkdir -p /export/servers #node01,node02,node03机器上执行

所有软件压缩包的存放路径

mkdir -p /export/softwares # 创建文件夹

安装rzsz命令

yum -y install lrzsz # 安装rz sz 命令

上传jdk安装包到/export/softwares路径下去,并解压

tar -zxvf jdk-8u141-linux-x64.tar.gz -C ../servers/

配置环境变量

vim /etc/profile

export JAVA_HOME=/export/servers/jdk1.8.0_141
export PATH=:$JAVA_HOME/bin:$PATH

执行以下命令将jdk安装包分发到node02node03节点上

scp -r /export/servers/jdk1.8.0_141/ node02:/export/servers/
scp -r /export/servers/jdk1.8.0_141/ node03:/export/servers/
scp /etc/profile node02:/etc/profile
scp /etc/profile node03:/etc/profile

刷新环境变量

source /etc/profile

安装Zookeeper
服务器IP 主机名 myid的值
192.168.10.100 node01 1
192.168.10.110 node02 2
192.168.10.120 node03 3

上传zookeeper安装包到/export/softwares路径下去,并解压

tar -zxvf zookeeper-3.4.9.tar.gz -C ../servers/

node01修改配置文件如下

cd /export/servers/zookeeper-3.4.9/conf/

cp zoo_sample.cfg zoo.cfg
# 创建数据存放节点
mkdir -p /export/servers/zookeeper-3.4.9/zkdatas/

vim zoo.cfg

dataDir=/export/servers/zookeeper-3.4.9/zkdatas
# 保留多少个快照
autopurge.snapRetainCount=3
# 日志多少小时清理一次
autopurge.purgeInterval=1
# 集群中服务器地址
server.1=node01:2888:3888
server.2=node02:2888:3888
server.3=node03:2888:3888

node01机器上

/export/servers/zookeeper-3.4.9/zkdatas/这个路径下创建一个文件,文件名为myid ,文件内容为1

echo 1 > /export/servers/zookeeper-3.4.9/zkdatas/myid

安装包分发到其他机器

node01机器上面执行以下两个命令

scp -r /export/servers/zookeeper-3.4.9/ node02:/export/servers/

scp -r /export/servers/zookeeper-3.4.9/ node03:/export/servers/

node02机器上修改myid的值为2

echo 2 > /export/servers/zookeeper-3.4.9/zkdatas/myid

node03机器上修改myid的值为3

<
  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值