当前位置: 首页 > news >正文

ClickHouse安装和部署

ClickHouse安装过程:

ClickHouse支持运行在主流64位CPU架构(X86、AArch和PowerPC)的Linux操作 系统之上,可以通过源码编译、预编译压缩包、Docker镜像和RPM等多种方法进行安装。由于篇幅有限,本节着重讲解离线RPM的安装方法。更多的安装方法请参阅官方于册,此处不再赘述。

1、环境准备

在这个示例中,演示服务器的操作系统为CentOS 7.7,而ClickHouse 选用19.17.4.11版本。在正式安装之前,我们还需要做一些准备工作。

1.1 下载RPM安装包

用于安装的RPM包可以从下面两个仓库中任选一个进行下载:https://repo.yandex.ru/clickhouse/rpm/stable/x86_64/
https://packagecloud.io/altinity/clickhouse
需要下载以下4个安装包文件:
clickhouse-client-19.17.4.11-1.c1.x86_64.rpm
clickhouse-comman-static-19.17.4.11-1.c1.x86_64.rpm
clickhouse-server-19.17.4.11-1.c1.x86_64.rpm
clickhouse-server-common-19.17.4.11-1.e17.x86_64.rpm

1.2 关闭防火墙井检查环境依赖

首先,考虑到后续的集群部署,通常建议关闭本机的防火墙,在Centos 7下关闭防墙的方法如下:

–关闭防火墙

systemccl stop firewnlld.service 

–禁用开机启必项

systenct1 disable firewalld.oervice

接着,需要验证当前服务器的CPU是否支持SSE4.2指令集,因为向量化执行需要用到这项特性:

 # grcp -q sse4_ 2  /proc/cpuinfo s& echo "SSE 4.2 supported" || echo " SSE 4.2 not supported"

如果不支持SSE指令集,则不能直接使用先前下载的预编泽安装包,需要通过源码编译特定的版本进行安装。

1.3 设置 FQDN

现在需要为服务器设置FQDN:

#hostnamectl--static set-hostname ch5.nauu.com

验证修改是否生效:

# hostname -f   ch5.nauu.com

最后需要配置hosts文件,配置后的效果如下:

cat /etc/hosts
......
10.37.129.10 ch5.nauu.com  ch5 

2、安装clickhouse

2.1.安装执行

假设已经将待安装的RPM文件上传到了服务器的/chbase/setup路径下,此时进入该目录:#cd/chbase/setup

执行如下命令后即可安装RPM文件:

# rpm -ivh ./*.rpm

因为是离线安装,在安装的过程中可能会出现缺少依赖包的情况,

error: Failed dependencies:Libioudaca.so.42()(64bit) Is needcd by ···..

此时需要将这些缺失的依赖补齐

2.2 目录结构

程序在安装的过程中会自动构建整套目录结构,接下来分别说明它们的作用。首先是核心目录部分:

要通过源码编

(1)/etc/clickhouse-server:服务端的配置文件目录,包括全局配置config.xml和用户 配置users.xml等。

(2)/var/lib/clickhouse:默认的数据存储目录(通常会修改默认路径配置,将数据保存到大容量磁盘挂载的路径)。

(3)/var/log/clickhouse—server:默认保存日志的目录(通常会修改路径配置,将日志保存到大容量磁盘挂载的路径)。

接着是配置文件部分:

(1)/etc/security/limits.d/clickhouse.conf:文件句柄数量的配置,默认值如下所示。

 # cat /etc/secu=ity/limits.d/clickhouse.confclickhouse soft nofile  262144clickhouse  hard  nofile  262144

该配置也可以通过config.xml的max_open_files修改。

(2)/etc/cron.d/clickhouse-server:cron定时任务配置,用于恢复因异常原因中断的 ClickHouse服务进程,其默认的配置如下。

# cat/etc/cron.d/clickhouse-server#*/10****root (which service>/dev/null 2>&1 && (service clickhouse-servercondstart ll:)) ll/etc/init.d/clickhouse-server condstart> /dev/null 2>&1

可以看到,在默认的情况下,每隔10秒就会使用condstart尝试启动一次 ClickHouse服务,而condstart命令的启动逻辑如下所示。

is_running |l service_or_func start 

如果ClickHouse 服务正在运行,则跳过;如果没有运行,则通过 start 启动。
最后是一组在/usr/bin路径下的可执行文件:

  1. clickhouse:主程序的可执行文件。
  2. clickhouse-client:一个指向clickHouse可执行文件的软链接,供客户端连接使用
  3. clickhouse-server:一个指向clickHouse可执行文件的软链接,供服务端启动使用
  4. clickhouse-compressor:内置提供的压缩工具,可用于数据的正压反解。

2.3.启动服务

在启动服务之前,建议修改默认的数据保存目录,将它切换到大容量磁盘挂载的路径。
打开config.xml配置文件,修改数据保存的地址:

<path>/chbase/data/</path>
<tmp_path>/chbase/data/tmp/</tmp_path>
<user_files_path>/chbase/data/user_files/</user_files_path>

正因为修改了默认的存储路径,所以需要将该目录的Owner设置为clickhouse用户:

# chown clickhouse.clickhouse /chbase/data/ -R

clickhouse 用户由安装程序自动创建,启动脚本会基于此用户启动服务。
在上述准备工作全部完成之后,就可以启动ClickHouse了。有两种启动方式:
首先是基于默认配置启动,其启动命令如下。

# service clickhouse-server start
Start clickhouse-server service: Path to data directory in /etc/clickhouse-
server/config.xml: /chbase/data/
DONE

在这种启动方式下,会默认读取/etc/clickhouse-server/config.xml 配置文件。
其次是基于指定配置启动,在这种方式下需要手动切换到clickhouse用户启动。

# su clickhouse
This account is currently not available.

如果切换用户出现了上述的异常情况,这是由于clickhouse用户当前还未激活导致,
可用如下命令将其激活:

# usermod -s /bin/bash clickhouse

再次切换到clickhouse用户并基于指定配置启动:

# clickhouse-server --config-file=/etc/clickhouse-server/config-ch5.xml

在启动成功之后,就可以使用客户端测试连接了:

# clickhouse-client
ClickHouse client version 19.17.4.11.
Connecting to localhost:9000 as user default.
:) show databases;2 rows in set. Elapsed: 0.001 sec.

至此,单节点的安装过程就全部完成了。如果需要安装新的节点,重复上述安装过程
即可。在新节点安装完成之后,记得在/etc/hosts中添加每台服务器节点的FQDN,例如:
的路径。

# cat /etc/hosts
......
10.37.129.10 ch5.nauu.com ch5
--新节点
10.37.129.13 ch6.nauu.ccm ch6

2.4 版本升级
在使用离线RPM安装包安装后,可以直接通过rpm命令升级:

# cd/chbase/setup
# rpm -Uvh./*.rpm   
Preparing...        #####################[100%]
......

在升级的过程中,原有的config.xml等配置均会被保留。基于其他安装方法的升级方
案,请参阅官方手册。

相关文章:

ClickHouse安装和部署

ClickHouse安装过程&#xff1a; ClickHouse支持运行在主流64位CPU架构&#xff08;X86、AArch和PowerPC&#xff09;的Linux操作 系统之上&#xff0c;可以通过源码编译、预编译压缩包、Docker镜像和RPM等多种方法进行安装。由于篇幅有限&#xff0c;本节着重讲解离线RPM的安…...

Spring Cloud Gateway中对admin端点进行认证

前言 我们被扫了一个漏洞&#xff0c;SpringBoot Actuator 未授权访问&#xff0c;漏洞描述是这样的&#xff1a; Actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块&#xff0c;借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计…...

2. 如何通过公网IP端口映射访问到设备的vmware虚拟机的ubuntu服务器

文章目录 1. 主机设备是Windows 11系统2. 安装vmware虚拟机3. 创建ubuntu虚拟机&#xff08;据说CentOS 7 明年就不维护了&#xff0c;就不用这个版本的linux了&#xff09;4. 安装nginx服务:默认端口805. 安装ssh服务:默认端口226. 设置主机 -> ubuntu的端口映射7. 设置路由…...

配置android sudio出现的错误

导入demo工程&#xff0c;配置过程参考&#xff1a; AndroidStudio导入项目的正确方式&#xff0c;修改gradle配置 错误&#xff1a;Namespace not specified. Specify a namespace in the module’s build file. 并定位在下图位置&#xff1a; 原因&#xff1a;Android 大括号…...

【初阶C++】前言

C前言 1. 什么是C2. C发展史3. C的重要性4. 如何学习C 1. 什么是C C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大的程序&#xff0c;需要高度的抽象和建模时&#xff0c;C语言则不合适。为了解决软件危机&#xff0c; …...

MAC IDEA Maven Springboot

在mac中&#xff0c;使用idea进行maven项目构建 环境配置如何运行maven项目1.直接在IDEA中运行2.使用jar打包后执行 如何搭建spring boot1.添加依赖2.创建入口类3.创建控制器4. 运行5.其他 环境配置 官网安装IDEA使用IDEA的创建新项目选择创建MAEVEN项目测试IDEA的MAVEN路径是…...

Angular13无法在浏览器debug

前言 本文将介绍如何解决在Angular 13中无法在浏览器中进行调试的问题&#xff0c;并提供了一种解决方法。 发生场景 根据项目需求&#xff0c;升级至Angular 13后&#xff0c;发现无法在浏览器中进行调试。 问题原因 无法进行调试的原因是&#xff0c;当使用Angular 13的…...

H.264与H.265(HEVC):视频编码的演进

目录 H.264的发展历程 1. 标准发布 2. 广泛应用 3. 专业化应用 H.265的出现...

Python从入门到精通九:Python异常、模块与包

了解异常 什么是异常 当检测到一个错误时&#xff0c;Python解释器就无法继续执行了&#xff0c;反而出现了一些错误的提示&#xff0c;这就是所谓的“异常”, 也就是我们常说的BUG bug单词的诞生 早期计算机采用大量继电器工作&#xff0c;马克二型计算机就是这样的。 19…...

无需公网IP联机Minecraft,我的世界服务器本地搭建教程

目录 前言 1.Mcsmanager安装 2.创建Minecraft服务器 3.本地测试联机 4. 内网穿透 4.1 安装cpolar内网穿透 4.2 创建隧道映射内网端口 5.远程联机测试 6. 配置固定远程联机端口地址 6.1 保留一个固定TCP地址 6.2 配置固定TCP地址 7. 使用固定公网地址远程联机 8.总…...

机器学习-SVM(支持向量机)

推荐课程&#xff1a;【机器学习实战】第5期 支持向量机 |数据分析|机器学习|算法|菊安酱_哔哩哔哩_bilibili 赞美菊神ヾ ( ゜ⅴ゜)&#xff89; 一、什么是支持向量机&#xff1f; 支持向量机&#xff08;Support Vector Machine, SVM&#xff09;是一类按监督学习&#xff0…...

保姆级:Windows Server 2012上安装.NET Framework 3.5

&#x1f4da;&#x1f4da; &#x1f3c5;我是默&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; ​​ &#x1f31f;在这里&#xff0c;我要推荐给大家我的专栏《Windows》。&#x1f3af;&#x1f3af; &#x1f680;无论你是编程小白&#xff0c;还是有…...

昇腾910安装驱动出错,降低Centos7.6的内核版本

零、问题描述&#xff1a; 在安装Atlas800-9000服务器的驱动的时候&#xff0c;可能会出现错误&#xff1a;Dkms install failed, details in : /var/log/ascend_seclog/ascend_install.log 如下所示&#xff1a; [rootlocalhost ~]# ./Ascend-hdk-910-npu-driver_23.0.rc3_l…...

LeetCode刷题日志-73矩阵置零

思路一&#xff1a; 用一个同样大小的矩阵记录0的位置&#xff0c;然后遍历矩阵置0&#xff0c; 空间复杂度为O&#xff08;mn&#xff09; class Solution {public void setZeroes(int[][] matrix) {int [][] matrix_new new int[matrix.length][matrix[0].length];for(int …...

基于Python+WaveNet+MFCC+Tensorflow智能方言分类—深度学习算法应用(含全部工程源码)(四)

目录 前言引言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理2. 模型构建3. 模型训练及保存4. 模型生成 系统测试1. 训练准确率2. 测试效果 相关其它博客工程源代码下载其它资料下载 前言 博主前段时间发布了一篇有关方言识别和分类模型训练的博客&#xff…...

文件操作及函数

什么是文件&#xff1f; 在程序设计中&#xff0c;文件有两种&#xff1a;程序文件和数据文件。 程序文件 包括源程序文件&#xff08;.c&#xff09;&#xff0c;目标文件&#xff08;.obj&#xff09;&#xff0c;可执行程序(.exe)。 数据文件 文件的内容不一定是程序&…...

阿里云国际版无法远程连接Windows服务器的排查方法

如果您遇到紧急情况&#xff0c;需要尽快登录Windows实例&#xff0c;请参见以下操作步骤&#xff0c;先检查ECS实例的状态&#xff0c;然后通过云助手向Windows实例发送命令或通过VNC登录实例&#xff0c;具体步骤如下&#xff1a; 步骤一&#xff1a;检查ECS实例状态 无论何…...

华清远见嵌入式学习——QT——作业4

作业要求&#xff1a; 代码运行效果图&#xff1a; 代码&#xff1a; 头文件&#xff1a; #ifndef ALARMCLOCK_H #define ALARMCLOCK_H#include <QWidget> #include <QTimerEvent> #include <QTimer> #include <QTime> #include <QTextToSpeech&g…...

Visuial Studio 打开 Unity 脚本时,脚本继承MonoBehaviour暂时失效为白色的解决方法

问题描述&#xff1a; u3d2020.3.47f1c1 vs2019 之前C#脚本A好好的&#xff0c;今天改了一行代码&#xff0c;在储存&#xff0c;就出现这个问题了&#xff0c;变白之后&#xff0c;新增的一行代码不生效&#xff0c;之前的代码照常运行。 如下办法都不能解决我的问题&…...

CentOS使用kkFileView实现在线预览word excel pdf等

一、环境安装 1、安装LibreOffice wget https://downloadarchive.documentfoundation.org/libreoffice/old/7.5.3.2/rpm/x86_64/LibreOffice_7.5.3.2_Linux_x86-64_rpm.tar.gz # 解压缩 tar -zxf LibreOffice_7.5.3.2_Linux_x86-64_rpm.tar cd LibreOffice_7.5.3.2_Linux_x86…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

tauri项目,如何在rust端读取电脑环境变量

如果想在前端通过调用来获取环境变量的值&#xff0c;可以通过标准的依赖&#xff1a; std::env::var(name).ok() 想在前端通过调用来获取&#xff0c;可以写一个command函数&#xff1a; #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...