栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

centos搭建clickhouse集群

centos搭建clickhouse集群

列式存储数据库

用于在线分析处理查询 OLAP
SQL查询实时生成分析数据报告
参考:https://www.cnblogs.com/biehongli/p/14364802.html

https://blog.csdn.net/github_39577257/article/details/103066747

集群节点信息

搭建环境 :系统环境:centos8.1 64位
192.168.10.68 JAVATEST-MIDDLE1
192.168.10.69 JAVATEST-MIDDLE2
192.168.10.70 JAVATEST-MIDDLE3
版本:
zookeeper-3.4.14
clickhouse21.3.5.42

1.安装前的准备 1.1创建snt目录文件并挂载/Data/StorageDisk1/下:
cd /Data/StorageDisk1/
mkdir snt
ln -s /Data/StorageDisk1/snt/ /snt
cd /snt
mkdir -p soft/zookeeper
chown -R snt:snt /snt/*
1.2 创建zookeeper和clickhouse数据存放目录和日志目录

1.2.1. 创建zookeeper数据和日志目录

mkdir -p /snt/data/zookeeper/data
mkdir -p /snt/log/zookeeper

1.2.2.创建clickhouser数据和日志目录并修改属主和属组

mkdir -p /snt/data/clickhouser/
mkdir -p /snt/data/clickhouser/tmp
mkdir -p /snt/log/clickhouse-server

到对应的目录下修改属主和属组:(必须修改 不让后面启动clickhouse会报错)

chown -R clickhouse:clickhouse clickhouse-server/
chown -R clickhouse:clickhouse  clickhouser/
1.3CentOS取消打开文件数限制 (默认的文件数限制是1024 用命令: ulimit -n)

在/etc/security/limits.conf /etc/security/limits.d/clickhouse.conf 这两个文件的末尾加入以下内容:

vim /etc/security/limits.conf
* soft nofile 65536                  *:#指所有的框架   65536:某个框架可以打开最大文件数 
* hard nofile 65536            
* soft nproc 131072                      # 打开最大进程数
* hard nproc 131072
 vim /etc/security/limits.d/clickhouse.conf
* soft nofile 65536                
* hard nofile 65536            
* soft nproc 131072                      
* hard nproc 131072
1.4 CentOS 取消SELINUX 关闭防火墙
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
systemctl status firewalld.service
systemctl stop firewalld.service && systemctl disable firewalld.service
2.搭建zookeeper集群

版本:zookeeper-3.4.14.tar.gz

2.1上传包至/snt/soft/zookeeper目录下解压tar包:
cd /snt/soft/zookeeper
tar -zxvf zookeeper-3.4.14.tar.gz
2.2 配置文件

在zookeeper的conf目录,拷贝zoo_sample.cfg为zoo.cfg

cp zoo_sample.cfg zoo.cfg 
vim zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir= /snt/data/zookeeper
dataLogDir= /snt/logs/zookeeper
autopurge.purgeInterval=0
globalOutstandingLimit=200
clientPort=2181
server.1=192.168.10.68:2888:3888
server.2=192.168.10.69:2888:3888
server.3=192.168.10.70:2888:3888
2.3. 设置myid 68 69 70 对应设置myid

创建数据目录,zoo.cfg配置文件里dataDir指定的那个目录下创建myid文件,并且指定id,改id为你zoo.cfg文件中server.1=ip:2888:3888中的1.只要在myid头部写入1即可.同理其它两台机器的id对应上。

vim /snt/data/zookeeper/myid
 1
2.4启动zookeeper
cd /snt/soft/zookeeper/zookeeper/zookeeper-3.4.14/bin
启动:./zkServer.sh start
查看状态:./zkServer.sh status

成功后一台是leade 两台是follower

ZooKeeper JMX enabled by default
Using config: /snt/soft/zookeeper/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: leader
ZooKeeper JMX enabled by default
Using config: /snt/soft/zookeeper/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: follower
ZooKeeper JMX enabled by default
Using config: /snt/soft/zookeeper/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: follower
2.5. 测试zookeeper
./zkCli.sh -server 192.168.10.68
3.安装clickhouse (68.69.70) 3.1添加官方存储库
yum install yum-utils
rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG   或者curl -s https://packagecloud.io/install/repositories/altinity/clickhouse/script.rpm.sh | sudo bash
yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/stable/x86_64
3.2 三种安装方式 :yum rpm包(需要在官网下载指定的包)二进制安装
#yum 安装:
yum install clickhouse-server clickhouse-client

rpm安装:
下载地址:https://github.com/ClickHouse/ClickHouse/releases/tag/v21.5.1.6463-testing
需要的clickhouse包:

rpm package clickhouse-client-21.5.1.6463-2.noarch.rpm
package clickhouse-server-21.5.1.6463-2.noarch.rpm
rpm package clickhouse-common-static-21.5.1.6463-2.x86_64.rpm
package clickhouse-common-static-dbg-21.5.1.6463-2.x86_64.rpm

上传包至:/snt/soft/clickhouse/目录下
安装:

rpm -ivh *.rpm

二进制安装:

export LATEST_VERSION=`curl https://api.github.com/repos/ClickHouse/ClickHouse/tags 2>/dev/null | grep -Eo '[0-9]+.[0-9]+.[0-9]+.[0-9]+' | head -n 1`
curl -O https://repo.clickhouse.tech/tgz/clickhouse-server-$LATEST_VERSION.tgz
curl -O https://repo.clickhouse.tech/tgz/clickhouse-client-$LATEST_VERSION.tgz
curl -O https://repo.clickhouse.tech/tgz/clickhouse-common-static-$LATEST_VERSION.tgz
curl -O https://repo.clickhouse.tech/tgz/clickhouse-common-static-dbg-$LATEST_VERSION.tgz

解压

tar -xzvf clickhouse-common-static-$LATEST_VERSION.tgz   (ClickHouse编译的二进制文件。)
clickhouse-common-static-$LATEST_VERSION/install/doinst.sh          
tar -xzvf clickhouse-common-static-dbg-$LATEST_VERSION.tgz   (创建clickhouse-server软连接,并安装默认配置服务)
clickhouse-common-static-dbg-$LATEST_VERSION/install/doinst.sh
tar -xzvf clickhouse-server-$LATEST_VERSION.tgz (创建clickhouse-client客户端工具软连接,并安装客户端配置文件。)
clickhouse-server-$LATEST_VERSION/install/doinst.sh
tar -xzvf clickhouse-client-$LATEST_VERSION.tgz  (带有调试信息的ClickHouse二进制文件。)
clickhouse-client-$LATEST_VERSION/install/doinst.sh
2.3 启动clickhouse:
启动:systemctl start clickhouse-server
查看是否正常:
systemctl status clickhouse-server.service
登录clickhouse:
clickhouse-client
clickhouse-client -m

注:用/etc/init.d/clickhouse-server start 或者 启动

Init script is already running           ---------- 报错Init script is already running
clickhouse-client
ClickHouse client version 21.3.4.25 (official build).
Connecting to localhost:9000 as user default.
Code: 210. DB::NetException: Connection refused (localhost:9000)

在centos7之后的操作系统,需要用systemctl启动才可以

3 clickhouse集群部署 (集群clickhouse报错信息地址(必须使用root权限才能看到log信息,否则空白一片))

先在68节点配置/etc/clickhouse-server/metrika.xml(需要自己创建,默认为 /etc/metrika.xml,自己制定时需要在 config.xml 中指明),这个文件主要将ClickHouse各个服务的host和port、ZooKeeper集群的各个节点配置到文件中。69和70也同样配置,只不过需要将标签下的标签中的值改为自己节点的主机名或者ip。

目录解释:(在配置文件config.xml修改的日志数据目录等 需要新建其对应的数据目录 且修改属主属组为clickhouse )
/var/lib/clickhouse:默认的数据存储目录,如果是生产环境可以将其修改到空间较大的磁盘挂载路径。可以通过修改 /etc/clickhouse-server/config.xml 配置文件中 标签值来设置。
/var/log/clickhouse-server:默认的日志保存目录。同样可以通过修改 /etc/clickhouse-server/config.xml 配置文件中 和 标签值来设置。
/etc/cron.d/clickhouse-server:clickhouse server 的一个定时配置,用于恢复因异常中断的 ClickHouse 服务进程。
~/.clickhouse-client-history:client 执行的 sql 历史记录

3.1首先以一个节点为例配置,vim /etc/metrika.xml,添加配置信息如下:






true


192.168.10.68
9000


 


true
192.168.10.69
9000



true

192.168.10.70
9000







192.168.10.68
2181


192.168.10.69
2181


192.168.10.70
2181



192.168.10.68


::/0



10000000000
0.01
lz4



3.2 传至69 70 服务器
scp /etc/clickhouse-server/metrika.xml root@192.168.10.69:/etc/clickhouse-server/metrika.xml
需要注意将  标签下的ip改成自己(69 ,70)的ip

192.168.10.68

3.3配置config.xml配置文件(因为集群之间需要互相方位其它节点的服务,需要开放ClickHouse服务的ip和端口,在68、69、70三个机器上配置/etc/clickhouse-server/config.xml文件,在标签下释放 标签(大概在69、70行),配置如下:
备份config.xml文件:

cd /etc/clickhouse-server/ && mv config.xml  config.xml.bak
vim config.xml
修改如下:

(默认的日志保存目录。同样可以通过修改 /etc/clickhouse-server/config.xml 配置文件中  标签值来设置。)
 /snt/log/clickhouse-server/clickhouse-server.log
 /snt/log/clickhouse-server/clickhouse-server.err.log
    
    192.168.10.68  
    
    ::   
    
    Asia/Shanghai
    
   添加如下信息:
   
   
   
   
   3600
           3600
           300
    0
    
                300
                600
                2
   
   0
   0
   
      
     /snt/data/clickhouse/ddl
   
    /etc/clickhouse-server/metrika.xml
    
    
  
 
    /snt/data/clickhouse
    
    /snt/data/clickhouse/tmp/

3.4把config.xml文件传至69 ,70上 做同样的操作

先备份69 70上的config.xml文件: mv config.xml config.xml.bak

```bash
scp config.xml root@192.168.10.69:/etc/clickhouse-server/
scp config.xml root@192.168.10.70:/etc/clickhouse-server/
修改config.xml文件和68一样
这行修改为本机的ip
192.168.10.69
3.5 创建default账号密码 新增sntck用户: (68 69 70 都要做同样的操作 集群方便管理三台都设置一样的密码)

密码配置有两种方式,一种是明文方式,一种是密文方式(sha256sum的Hash值),官方推荐使用密文作为密码配置,用户名和密码的配置主要是在标签中,下面的配置文件中配置了两个用户,一个是默认用户default,就是如果未指明用户时默认使用的用户,其密码配置的为sha256密文方式,第二个用户是sntck,为一个只读用户,即只能查看数据,无法建表修改数据等操作,其密码直接采用的明文方式进行配置

PASSWORD=$(base64 < /dev/urandom | head -c8); echo "snt2020"; echo -n "snt2020" | sha256sum | tr -d '-'
snt2020
5ae5a720015cb578a25ebcbab67c5174a77892eb7d4b1dce5912df737b0c413b #得到的密文密码
vim /etc/clickhouse-server/users.xml


    
    
        
        
            10000000000
            0
            random
        
        
        
            1
        
    
    
    
        
            
    5ae5a720015cb578a25ebcbab67c5174a77892eb7d4b1dce5912df737b0c413b
            
                ::/0
            
            
            default
            
            default
            
            
                
                    
                    
                        a = 1
                    
                    
                    
                        a + b < 1 or c - d & 5
                    
                    
                    
                        c = 1
                    
                
            
        
        
            123456
            
                ::/0
            
            readonly
            default
        
    
    
    
        
        
            
            
                
                3600
                
                0
                0
                0
                0
                0
            
        
    

4.每个节点都启动clickhouse的服务,和单节点启动一样,当出现无误后,查看clickhouse的log文件
4.1在每个节点启动clickhouse客户端,和单节点启动完全一样,查询集群信息
4.2 登录clickhouse
指定用户名和密码 :

clickhouse-client -h 192.168.10.68 -u default --password snt2020

指定sql命令方式:

clickhouse-client -h 192.168.10.68 --port 9000 -u default --password snt2020  --multiline -q "SELECT now()"

指定端口连接:

clickhouse-client -h 192.168.10.66 --port 9080 -u default --password snt2020

查看集群信息:

select * from system.clusters;
5.远程工具连接:DBeaver

新建连接
All(或者Analytical),选择ClickHouse,下一步
端口默认是8123,主机选择ClickHouse的Server节点(如果是集群,随意一个ClickHouse 服务节点都行)。填写用户认证处设置用户名和密码。
测试连接,会提示下载驱动,确认下载即可。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/753709.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号