十、Linux二进制安装ClickHouse集群(含rpm安装)

十、Linux二进制安装ClickHouse集群(含rpm安装,单机版使用rpm,集群使用tar包安装方式)

1 部署前服务器配置(集群的话三台都要配置)

新增第一行:127.0.0.1 服务器名称(配置单机版只需要怕配置此步骤
新增 集群服务器的服务器名称和ip(配置集群两个都需要配置

查看本机服务器名称

hostname

在这里插入图片描述

sudo vi /etc/hosts

162服务器hosts文件
163服务器hosts文件在这里插入图片描述

1.2 配置hosts文件

sudo vi /etc/hosts

1.3 打开文件数限制

sudo vi /etc/security/limits.conf

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

* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
sudo vi /etc/security/limits.d/90-nproc.conf

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

* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

重启服务器之后生效,用 ulimit -n 或者 ulimit -a 查看设置结果( 先不要重启,等后面配置修改完一起重启
在这里插入图片描述

1.4 取消 SELINUX

vi /etc/selinux/config

修改 /etc/selinux/config 中的 SELINUX=disabled
将 SELINUX=enforcing 修改为:

SELINUX=disabled

重启服务器后查看 SELINUX 状态

[root@localhost ~]# sestatus
SELinux status:   disabled

1.5 禁用透明大页

vi /etc/default/grub

在 GRUB_CMDLINE_LINUX 行最后加上

GRUB_CMDLINE_LINUX="rd.lvm.lv=centos_wjwcentos7/root rd.lvm.lv=centos_wjwcentos7/swap rhgb quiet transparent_hugepage=never"

在这里插入图片描述
紧接着执行生效命令

grub2-mkconfig -o /boot/grub2/grub.cfg

在这里插入图片描述

注意:如果 linux 开启透明巨页THP,则 I/O 读写性能降低 30%;如果关闭透明巨页 THP,I/O 读写性能则恢复正常。
Linux 下的大页分为两种类型:标准大页(Huge Pages)和透明巨页(Transparent Huge Pages)。

  1. 标准大页(Huge Pages)是从 Linux Kernel 2.6 后被引入的。目的是用更大的内存页面(memory page size) 以适应越来越大的系统内存,让操作系统可以支持现代硬件架构的大页面容量功能
  2. 透明巨页(Transparent Huge Pages)缩写为 THP,透明超大页面(THP)在 RHEL 6 中默认情况下对所有应用程序都是启用的。内核试图尽可能分配巨大的页面,主内核地址空间本身被映射为巨大的页面,减少了内核代码的 TLB 压力。内核将始终尝试使用巨页来满足内存分配。如果没有可用的巨大页面(例如由于物理连续内存不可用),内核将回退到正常的 4KB 页面。THP 也是可交换的(不像 hugetlbfs)。这是通过将大页面分成更小的 4KB 页面来实现的,然后这些页面被正常地换出。

两者区别在于大页的分配机制,标准大页管理是预分配方式,而透明巨页管理则是动态分配方式。目前透明巨页与传统大页混合使用会出现一些问题,导致性能问题和系统重启。ORACLE 官方不建议在使用 RedHat 6, OEL 6, SLES 11 and UEK2 kernels 时开启透明巨页(THP),因为透明巨页存在一些问题:

  1. 在 RAC 环境下,透明巨页(THP)会导致异常节点重启和性能问题;

  2. 在单机环境中,透明巨页(THP)也会导致一些异常的性能问题;

完成这些设置就可以重启一下服务器了

2 下载所需文件

官网下载 tgz包:二进制包

2.1 tgz和rpm下载注意事项

tgz下载 clickhouse-common-static clickhouse-common-static-dbg clickhouse-server clickhouse-client四个文件
可以找一台能联网的服务器使用下面脚本进行下载(百度网盘的downLoad.sh)
在这里插入图片描述
tar包下载脚本

LATEST_VERSION=$(curl -s https://packages.clickhouse.com/tgz/stable/ | \
    grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort -V -r | head -n 1)
export LATEST_VERSION

case $(uname -m) in
  x86_64) ARCH=amd64 ;;
  aarch64) ARCH=arm64 ;;
  *) echo "Unknown architecture $(uname -m)"; exit 1 ;;
esac

for PKG in clickhouse-common-static clickhouse-common-static-dbg clickhouse-server clickhouse-client
do
  curl -fO "https://packages.clickhouse.com/tgz/stable/$PKG-$LATEST_VERSION-${ARCH}.tgz" \
    || curl -fO "https://packages.clickhouse.com/tgz/stable/$PKG-$LATEST_VERSION.tgz"
done

rpm包下载脚本

LATEST_VERSION=$(curl -s https://packages.clickhouse.com/rpm/stable/ | 
    grep -Eo '[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?' | sort -V -r | head -n 1)

case $(uname -m) in
  x86_64) ARCH=x86_64 ;;
  aarch64) ARCH=aarch64 ;;
  *) echo "不支持的架构 $(uname -m)"; exit 1 ;;
esac

for PKG in clickhouse-common-static clickhouse-common-static-dbg clickhouse-server clickhouse-client
do
  URL1="https://packages.clickhouse.com/rpm/stable/$PKG-$LATEST_VERSION.${ARCH}.rpm"
  URL2="https://packages.clickhouse.com/rpm/stable/$PKG-$LATEST_VERSION.rpm"

  if curl -fO "$URL1"; then
    echo "成功下载: $URL1"
  elif curl -fO "$URL2"; then
    echo "成功下载: $URL2"
  else
    echo "无法下载 $PKG"
    echo "尝试的 URL:"
    echo "1. $URL1"
    echo "2. $URL2"
  fi
done

官网下载 rpm包:rpm下载

百度网盘下载:百度网盘

3 单机版部署(rpm安装)

3.1 创建安装包目录

mkdir /opt/Clickhouse

3.2 下载文件

通过上面的下载。
在这里插入图片描述

3.3 依次安装

rpm -ivh clickhouse-common-static-24.7.3.42.x86_64.rpm

rpm -ivh clickhouse-common-static-dbg-24.7.3.42.x86_64.rpm

rpm -ivh clickhouse-server-24.7.3.42.x86_64.rpm

rpm -ivh clickhouse-client-24.7.3.42.x86_64.rpm

目录结构

目录说明
/etc/ ClickHouse -server服务端的配置文件目录,包括全局配置config.xml和用户配置users.xml
/var/lib/ ClickHouse默认数据存储目录,通常会修改默认路径配置,将数据保存到大容量磁盘挂载路径
/var/log/ ClickHouse -server默认日志保存目录,通常会修改路径配置将日志保存到大容量磁盘挂载的路径

3.4 修改配置文件

注意:ClickHouse 默认使用 9000 端口,但是这个端口与 HDFS 发生冲突,所以如果安装了HDFS 建议修改

vi /etc/ ClickHouse -server/config.xml

listen_host 表示能监听的主机,:: 表示任意主机都可以访问,放开注释

IPV6:放开<listen_host>::</listen_host>的注释

IPV4:放开<listen_host>0.0.0.0</listen_host>的注释

二者只放开一个

文件句柄数量的配置(默认这样的话不需要修改)

cat /etc/security/limits.d/clickhouse.conf

在这里插入图片描述
配置密码

vi /etc/clickhouse-server/users.xml

在这里插入图片描述

3.5 启动Clickhouse

命令释义
systemctl start clickhouse-server启动 Clickchouse服务
systemctl stop clickhouse-server关闭 Clickchouse服务
systemctl restart clickhouse-server重启 Clickchouse服务
systemctl status clickhouse-server查看 Clickchouse服务状态
systemctl enable clickhouse-server设置开机自启
systemctl disenable clickhouse-server关闭开机自启
systemctl is-enabled clickhouse-server查看开机自启是否成功

3.6 测试启动状态

如果你修改了端口,就需要加上,默认是9000

 clickhouse-client --port=9977

在这里插入图片描述

4 集群部署Clickhouse(tar包安装)

4.1 安装zookeeper

安装教程:zookeeper集群安装
在这里插入图片描述

4.2 创建安装包目录(三台服务器都需要安装)

mkdir /opt/Clickhouse

4.3 下载安装包

可以通过上面提供的脚本或者网盘进行下载
在这里插入图片描述解压文件夹:

tar -zxvf  clickhouse-client-23.12.6.19-amd64.tgz
tar -zxvf  clickhouse-common-static-23.12.6.19-amd64.tgz
tar -zxvf  clickhouse-common-static-dbg-23.12.6.19-amd64.tgz
tar -zxvf  clickhouse-server-23.12.6.19-amd64.tgz

在这里插入图片描述

4.4 安装Clickhouse(三台服务器都进执行)

/opt/Clickhouse/clickhouse-client-23.12.6.19/install/doinst.sh
/opt/Clickhouse/clickhouse-common-static-23.12.6.19/install/doinst.sh
/opt/Clickhouse/clickhouse-common-static-dbg-23.12.6.19/install/doinst.sh
/opt/Clickhouse/clickhouse-server-23.12.6.19/install/doinst.sh

安装的时候会弹出输入密码,这个我们不做设置,直接回车。后续统一设置

4.5 修改配置文件

vi /etc/clickhouse-server/config.xml

在这里插入图片描述

这一步是为了下面的步骤:
在这里插入图片描述
将自带的remote_servers部分内容删除掉
在这里插入图片描述
修改后

	<include_from>/etc/clickhouse-server/metrika.xml</include_from>
    <remote_servers incl="remote_servers" optional="true" />
    <zookeeper incl="zookeeper-servers" optional="true" />
    <macros incl="macros" optional="true" />
    <compression incl="clickhouse_compression" optional="true"/>

在这里插入图片描述

vi /etc/clickhouse-server/users.xml

在这里插入图片描述

上面三台服务器是一样的设置,下面的是需要分别配置的
先看一下,再去下面设置。最好是粘出来修改后再去插入。
在这里插入图片描述
在这里插入图片描述

node1

 vi /etc/clickhouse-server/metrika.xml
<yandex>
    <remote_servers>
        <!-- 自定义的集群名称 -->
        <ck_cluster>
            <!-- 分片信息 -->
            <shard>
                <weight>1</weight>
                <!-- 分布式表写入数据是否只写入到一个副本,配合复制表引擎使用,默认false -->
                <internal_replication>true</internal_replication>
                <!-- 分片副本信息,这里指定的用户名密码只能是明文,如果需要密文密码需要将配置指向users.xml中的profile中 -->
                <replica>
                    <host>192.168.200.161</host>
                    <port>9000</port>
                    <user>default</user>
                    <password>123456</password>
                </replica>
            </shard>
            <shard>
                <weight>1</weight>
                <internal_replication>true</internal_replication>
                <replica>
                    <host>192.168.200.162</host>
                    <port>9000</port>
                   <!-- 下面是用户名和密码 -->
                    <user>default</user>
                    <password>123456</password>
                </replica>
            </shard>
            <shard>
                <weight>1</weight>
                <internal_replication>true</internal_replication>
                <replica>
                    <host>192.168.200.163</host>
                    <port>9000</port>
                    <user>default</user>
                    <password>123456</password>
                </replica>
            </shard>
        </ck_cluster>
    </remote_servers>

    <!-- Replicated*MergeTree会用到zk -->
    <zookeeper-servers>
        <node index="1">
            <host>192.168.200.161</host>
            <port>2181</port>
        </node>
        <node index="2">
            <host>192.168.200.162</host>
            <port>2181</port>
        </node>
        <node index="3">
            <host>192.168.200.163</host>
            <port>2181</port>
        </node>
    </zookeeper-servers>

    <!-- Replicated*MergeTree建表语句的参数,指定zk的存储目录用 -->
    <macros>
        <!--集群名称-->
        <layer>ck_cluster</layer>
        <!--分片-->
        <shard>shard01</shard>
        <!--副本-->
        <replica>replica01</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>

node2

 vi /etc/clickhouse-server/metrika.xml

node3

 vi /etc/clickhouse-server/metrika.xml
<yandex>
    <remote_servers>
        <!-- 自定义的集群名称 -->
        <ck_cluster>
            <!-- 分片信息 -->
            <shard>
                <weight>1</weight>
                <!-- 分布式表写入数据是否只写入到一个副本,配合复制表引擎使用,默认false -->
                <internal_replication>true</internal_replication>
                <!-- 分片副本信息,这里指定的用户名密码只能是明文,如果需要密文密码需要将配置指向users.xml中的profile中 -->
                <replica>
                    <host>192.168.200.161</host>
                    <port>9000</port>
                    <user>default</user>
                    <password>123456</password>
                </replica>
            </shard>
            <shard>
                <weight>1</weight>
                <internal_replication>true</internal_replication>
                <replica>
                    <host>192.168.200.162</host>
                    <port>9000</port>
                   <!-- 下面是用户名和密码 -->
                    <user>default</user>
                    <password>123456</password>
                </replica>
            </shard>
            <shard>
                <weight>1</weight>
                <internal_replication>true</internal_replication>
                <replica>
                    <host>192.168.200.163</host>
                    <port>9000</port>
                    <user>default</user>
                    <password>123456</password>
                </replica>
            </shard>
        </ck_cluster>
    </remote_servers>

    <!-- Replicated*MergeTree会用到zk -->
    <zookeeper-servers>
        <node index="1">
            <host>192.168.200.161</host>
            <port>2181</port>
        </node>
        <node index="2">
            <host>192.168.200.162</host>
            <port>2181</port>
        </node>
        <node index="3">
            <host>192.168.200.163</host>
            <port>2181</port>
        </node>
    </zookeeper-servers>

    <!-- Replicated*MergeTree建表语句的参数,指定zk的存储目录用 -->
    <macros>
        <!--集群名称-->
        <layer>ck_cluster</layer>
        <!--分片-->
        <shard>shard03</shard>
        <!--副本-->
        <replica>replica03</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>

4.6 启动Clickhouse

命令释义
systemctl start clickhouse-server启动 Clickchouse服务
systemctl stop clickhouse-server关闭 Clickchouse服务
systemctl restart clickhouse-server重启 Clickchouse服务
systemctl status clickhouse-server查看 Clickchouse服务状态
systemctl enable clickhouse-server设置开机自启
systemctl disenable clickhouse-server关闭开机自启
systemctl is-enabled clickhouse-server查看开机自启是否成功

4.7 验证集群状态

exit

5 ClickHouse 配置文件解析

6 注意事项

ClickHouse : 每个节点在安装的时候,都是独立的。

每个节点的 ClickHouse 都是单独的服务器在运行,在有需要的时候,可以通过配置文件,把他们联合起来变成一个集群。甚至还可以,把你准备的所有的服务器,配置成多个集群。就算你配置成集群了,每个服务器依然还是单独运行的。

如果你创建了一张表,这张表的引擎是分布式的引擎,那么这个表所存储在那个集群里面的那个集群里面的机器,就是一个集群了。每个 ClickHouse 中的部分表是单机的, 部分表是分布式的。

ClickHouse 既是单独运行的,游离于集群之外,被包含在集群之类的表:分为单机的表和分布式的表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值