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

中间件--ClickHouse-11--部署示例(Linux宿主机部署,Docker容器部署)

一、Linux宿主机部署

1、环境准备

  • 操作系统:推荐使用 CentOS 7/8 或 Ubuntu 18.04/20.04。
  • 硬件要求:
    • 至少 2 核 CPU 和 4GB 内存。
    • 足够的磁盘空间(根据数据量评估)。
    • CPU需支持SSE4.2指令集(可通过以下命令检查):
      bash示例:
      grep -q sse4_2 /proc/cpuinfo && echo “SSE4.2 supported” || echo “SSE4.2 not supported”
  • 网络:确保服务器可以访问互联网以下载必要的软件包。

2、安装ClickHouse

(1)、CentOS上使用YUM源安装
1. 添加 ClickHouse 官方仓库

bash示例:

sudo yum install -y yum-utils
sudo rpm --import https://repo.clickhouse.com/CLICKHOUSE-KEY.GPG
sudo yum-config-manager --add-repo https://repo.clickhouse.com/rpm/clickhouse.repo
2. 安装 ClickHouse

bash示例:

sudo yum install -y clickhouse-server clickhouse-client
3. 启动服务

bash示例:

sudo systemctl start clickhouse-server    # 启动示例
sudo systemctl enable clickhouse-server    # 设置开机自启
(2)、Ubuntu使用APT安装
1. 添加 ClickHouse 官方仓库

bash示例:

sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates dirmngr
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E0C56BD4
echo "deb https://repo.clickhouse.com/deb/stable/main/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/clickhouse.list
2. 安装 ClickHouse

bash示例:

sudo apt-get update
sudo apt-get install -y clickhouse-server clickhouse-client
3. 启动服务

bash示例:

sudo service clickhouse-server start
(3)、手动安装(适用于离线环境)
1. 下载 ClickHouse 二进制文件

访问 ClickHouse Releases,下载适合的版本,例如:
bash示例:

wget https://builds.clickhouse.com/master/amd64/clickhouse
chmod +x clickhouse
sudo mv clickhouse /usr/bin/
2. 创建默认配置目录

bash示例:

sudo mkdir -p /etc/clickhouse-server
sudo cp /usr/share/clickhouse/config.xml /etc/clickhouse-server/
sudo cp /usr/share/clickhouse/users.xml /etc/clickhouse-server/
3. 启动 ClickHouse

bash示例:

sudo clickhouse-server --config-file=/etc/clickhouse-server/config.xml

3、部署验证

(1)、通过客户端连接
1. 使用 clickhouse-client 连接到服务器:

bash示例:

clickhouse-client

执行后,可以成功进入交互式命令行界面。

2. 执行简单的 SQL 查询:

sql示例:

SHOW DATABASES;
或:
SELECT 1;

前者返回数据库信息,后者返回1,则说明客户端连接成功,即ClickHouse已正确安装并运行。

(2)、检查服务状态
1. 检查 ClickHouse 服务是否正在运行:

bash示例:

sudo systemctl status clickhouse-server

或者:
bash示例:

ps aux | grep clickhouse
2. 查看日志文件:

默认日志路径为 /var/log/clickhouse-server/,检查日志是否有错误信息:
bash示例:

tail -f /var/log/clickhouse-server/clickhouse-server.log
(3)、测试 HTTP 接口
  1. 默认情况下,ClickHouse 提供 HTTP 接口,默认端口为 8123。
  2. 测试接口是否可用:
    bash示例:
curl 'http://localhost:8123/?query=SELECT+version()'

输出类似于以下内容:

22.9.1.1   

4、配置ClickHouse

  • 主要配置文件及路径:
    • 主配置文件:/etc/clickhouse-server/config.xml
    • 用户配置文件:/etc/clickhouse-server/users.xml
(1)、设置监听地址

编辑 config.xml 文件,找到 <listen_host> 部分,设置为 0.0.0.0 以允许所有 IP 访问:
xml示例:

<listen_host>0.0.0.0</listen_host>
(2)、修改用户权限

编辑 users.xml 文件,设置默认用户的密码或添加新用户:
xml示例:

<password>your_password</password>
(3)、配置防火墙(可选)

开放ClickHouse的默认端口(HTTP端口8123和TCP端口9000):
bash示例:
Ubuntu/Debian:

sudo ufw allow 8123/tcp
sudo ufw allow 9000/tcp

CentOS/RHEL:

sudo firewall-cmd --permanent --add-port=8123/tcp
sudo firewall-cmd --permanent --add-port=9000/tcp
sudo firewall-cmd --reload
(4)、重启服务

修改配置后需要重启 ClickHouse 服务:
bash示例:

sudo service clickhouse-server restart     # Ubuntu/Debian
sudo systemctl restart clickhouse-server   # CentOS/RHEL

5、常见问题排查

(1)、服务无法启动
  • 检查日志文件 /var/log/clickhouse-server/clickhouse-server.log。
  • 确保端口未被占用(默认端口:8123 HTTP, 9000 TCP)。
(2)、客户端连接失败
  • 确认 clickhouse-server 是否正在运行。
  • 检查防火墙规则,确保开放了 8123 和 9000 端口。
(3)、性能问题
  • 确保服务器有足够的内存和磁盘空间。
  • 调整配置文件中的缓存和线程池参数。

6、可视化工具推荐

  • 客户端工具:clickhouse-client(命令行)。
  • 图形化工具:
    • DBeaver:支持ClickHouse驱动,可直接连接。
    • Grafana:结合ClickHouse插件实现数据可视化。

二、Docker部署

1、环境准备

  • 操作系统:推荐使用 CentOS 7/8 或 Ubuntu 18.04/20.04。
  • 硬件要求:
    • 至少 2 核 CPU 和 4GB 内存。
    • 足够的磁盘空间(根据数据量评估)。
    • CPU需支持SSE4.2指令集(可通过以下命令检查):
      bash示例:
grep -q sse4_2 /proc/cpuinfo && echo "SSE4.2 supported" || echo "SSE4.2 not supported"
  • 网络:确保服务器可以访问互联网以下载必要的镜像。

2、安装Docker

(1)、CentOS上安装Docker

bash示例:
更新系统包

sudo yum update -y

安装 Docker

sudo yum install -y docker

启动并设置 Docker 开机自启

sudo systemctl start docker
sudo systemctl enable docker

检查 Docker 版本

docker --version
(2)、Ubuntu上安装Docker

bash示例:
更新系统包

sudo apt-get update

安装 Docker

sudo apt-get install -y docker.io

启动并设置 Docker 开机自启

sudo systemctl start docker
sudo systemctl enable docker

检查 Docker 版本

docker --version

3、拉取 ClickHouse 镜像

从 Docker Hub 拉取官方的 ClickHouse 镜像:
bash示例:

docker pull clickhouse/clickhouse-server

4、运行 ClickHouse 容器

(1)、基础命令(不推荐)

启动一个 ClickHouse 容器,并将默认端口映射到主机上:
bash示例:

docker run -d \--name clickhouse-server \-p 8123:8123 \   # HTTP 接口-p 9000:9000 \   # TCP 接口-p 9009:9009 \   # 复制协议(可选)clickhouse/clickhouse-server
(2)、挂载数据目录(推荐)

持久化存储数据,建议将本地目录挂载到容器中:
bash示例:

docker run -d \--name clickhouse-server \-p 8123:8123 \-p 9000:9000 \-v /path/to/local/data:/var/lib/clickhouse \-v /path/to/local/config:/etc/clickhouse-server \clickhouse/clickhouse-server

解释:

  • /path/to/local/data:用于存储 ClickHouse 数据文件。
  • /path/to/local/config:用于存储 ClickHouse 配置文件。
(3)、自定义配置启动

如果需要自定义配置,可以将主机上的 config.xml 和 users.xml 文件挂载到容器中:
bash示例:

docker run -d \--name clickhouse-server \-p 8123:8123 \-p 9000:9000 \-v /path/to/local/config/config.xml:/etc/clickhouse-server/config.xml \-v /path/to/local/config/users.xml:/etc/clickhouse-server/users.xml \clickhouse/clickhouse-server

5、验证部署是否成功

(1)、通过客户端连接
1. 使用 clickhouse-client 连接到容器中的 ClickHouse:

bash示例:

docker exec -it clickhouse-server clickhouse-client

如果成功进入交互式命令行界面,则说明 ClickHouse 已正确运行。

2. 执行简单的 SQL 查询:

sql示例:

SHOW DATABASES;
或:
SELECT 1;

如果显示数据库列表或后者返回1,说明客户端连接成功,即ClickHouse已正确安装并运行。

(2)、测试HTTP接口
  1. 默认情况下,ClickHouse 提供 HTTP 接口,默认端口为 8123。
  2. 测试接口是否可用:
    bash示例:
   curl 'http://localhost:8123/?query=SELECT+version()'

输出类似于以下内容:

22.9.1.1
(3)、检查容器状态
1. 查看容器是否正在运行:

bash示例:

docker ps

输出中应包含 clickhouse-server 容器。

2. 查看容器日志:

bash示例:

docker logs clickhouse-server

6、管理 ClickHouse 容器

bash示例:
停止容器

docker stop clickhouse-server

启动容器

docker start clickhouse-server

删除容器

docker rm -f clickhouse-server

7、配置 ClickHouse

(1)、修改配置文件
  • 如果挂载了配置文件(如 config.xml 和 users.xml),可以直接在主机上编辑这些文件。
  • 修改完成后,重启容器以应用更改:
    bash示例:
docker restart clickhouse-server
(2)、设置监听地址

编辑 config.xml 文件,找到 <listen_host> 部分,设置为 0.0.0.0 以允许所有 IP 访问:
xml示例:

<listen_host>0.0.0.0</listen_host>
(3)、修改用户权限

编辑 users.xml 文件,设置默认用户的密码或添加新用户:
xml示例:

<password>your_password</password>
(4)、配置防火墙(可选)

开放ClickHouse的默认端口(HTTP端口8123和TCP端口9000):
bash示例:
Ubuntu/Debian:

sudo ufw allow 8123/tcp
sudo ufw allow 9000/tcp

CentOS/RHEL:

sudo firewall-cmd --permanent --add-port=8123/tcp
sudo firewall-cmd --permanent --add-port=9000/tcp
sudo firewall-cmd --reload

7、可视化工具推荐

  • 客户端工具:clickhouse-client(命令行)。
  • 图形化工具:
    • DBeaver:支持ClickHouse驱动,可直接连接。
    • Grafana:结合ClickHouse插件实现数据可视化。
(1)、DBeaver示例(推荐)
  1. 下载并安装 DBeaver(官网:https://dbeaver.io/)。
  2. 新建连接:
    • 连接类型选择 ClickHouse。
    • 主机:ClickHouse 服务器 IP 或域名。
    • 端口:9000(默认 TCP 端口)。
    • 用户名:default(或自定义用户)。
    • 密码:若已设置密码需填写。
      3.测试连接成功后,即可通过图形界面执行 SQL、查看表结构等。
(2)、Grafana示例
1. 特点:
  • 强大的数据可视化工具,支持实时监控和仪表盘。
  • 可与 ClickHouse 直接集成,支持动态图表和告警。
2.使用步骤:

步骤一:安装 Grafana(以 Ubuntu 为例):
bash示例:
wget https://dl.grafana.com/oss/release/grafana_10.1.6_amd64.deb
sudo dpkg -i grafana_10.1.6_amd64.deb
sudo systemctl start grafana-server

步骤二:访问 Grafana 界面:
浏览器访问 http://<服务器IP>:3000(默认账号密码:admin/admin)。

步骤三:添加 ClickHouse 数据源:

  • 点击 Configuration > Data Sources > Add data source。
  • 选择 ClickHouse。
  • 配置参数:
    • URL: http://<ClickHouse服务器IP>:8123
    • 用户名/密码:default(或其他用户)。
    • 数据库:default(或目标数据库)。

步骤四:创建仪表盘:

  • 通过 SQL 查询生成图表(如折线图、柱状图等)。

逆风成长,Dare To Be!!!

相关文章:

中间件--ClickHouse-11--部署示例(Linux宿主机部署,Docker容器部署)

一、Linux宿主机部署 1、环境准备 操作系统&#xff1a;推荐使用 CentOS 7/8 或 Ubuntu 18.04/20.04。硬件要求&#xff1a; 至少 2 核 CPU 和 4GB 内存。足够的磁盘空间&#xff08;根据数据量评估&#xff09;。CPU需支持SSE4.2指令集&#xff08;可通过以下命令检查&#…...

DeepSeek和Excel结合生成动态图表

文章目录 一、前言二、3D柱状图案例2.1、pyecharts可视化官网2.2、Bar3d-Bar3d_puch_card2.3、Deepseek2.4、WPS2.5、动态调整数据 一、前言 最近在找一些比较炫酷的动态图表&#xff0c;用于日常汇报&#xff0c;于是找到了 DeepseekExcel王牌组合&#xff0c;其等同于动态图…...

[Python入门学习记录(小甲鱼)]第6章 函数

函数就是把代码整理打包的东西 6.1 Python的函数基操 函数的基本操作 6.1.1 创建和调用函数 def myfunc():print(1)print(2)print(3) myfunc() # 输出 1 2 3 带换行 调用时会自动找函数定义6.1.2 函数的参数 def add(num1, num2):print(num1 num2) add(1, 2) # 输出 3…...

Ubuntu20.04 部署llama-factory问题集

llama3 微调教程之 llama factory 的 安装部署与模型微调过程&#xff0c;模型量化和gguf转换。_llamafactory 部署-CSDN博客 1.跟着教程 llama-factory下载不下来 来&#xff0c;试着换源&#xff0c;多试几次&#xff0c;就可以成功了。。。 2.跟着教程&#xff0c;发现无法…...

海量聊天数据处理:基于Spring Boot与SharingJDBC的分库分表策略及ClickHouse冷热数据分离

引言 随着互联网应用的快速发展&#xff0c;每天产生的聊天记录数量级已经达到了惊人的程度。以2000万条/天为例&#xff0c;一年下来就是大约7.3亿条记录。如此庞大的数据量给数据库的设计和管理带来了前所未有的挑战。本文将探讨如何使用SharingJDBC整合Spring Boot技术来实…...

EAL4+与等保2.0:解读中国网络安全双标准

EAL4与等保2.0&#xff1a;解读中国网络安全双标准 在当今数字化时代&#xff0c;网络安全已成为各个行业不可忽视的重要议题。特别是在金融、政府、医疗等领域&#xff0c;保护信息的安全性和隐私性显得尤为关键。在中国&#xff0c;EAL4和等级保护2.0&#xff08;简称“等保…...

GreatSQL启动崩溃:jemalloc依赖缺失问题排查

GreatSQL启动崩溃&#xff1a;jemalloc依赖缺失问题排查 故障现象&#xff1a; 之前协助用户安装 GreatSQL 测试环境时&#xff0c;遇到一个 case&#xff0c;数据库初始化时没有报错&#xff0c;但是使用mysqld_safe去启动&#xff0c;会直接 crash ,详情报错如下&#xff1…...

大语言模型助力 Support Case 分析,提升云服务效率

1. 背景 技术工单&#xff08;Support Case&#xff09;是企业在进行云平台操作的时候通常会用到的一种技术支持类型&#xff0c;提供的技术支持通常包括所有的云服务的使用问题、账单问题、限制额度提升等等。对于云平台的管理者而言&#xff0c;对各个 BU 所提的工单进行统计…...

ubuntu磁盘挂载

1、‌查看磁盘设备及分区‌ 命令‌&#xff1a;列出所有块设备&#xff08;磁盘及分区&#xff09; lsblk 0表示此块未挂载 2、格式化分区 sudo mkfs.ext4 /dev/sdb 注意sdb换成自己的块名称 3、创建挂载点目录‌ sudo mkdir -p /mnt/data4、永久挂载 sudo blkid /dev…...

在pycharm中搭建yolo11分类检测系统--PyQt5学习(二)

第二部分 测试本地pycharm通过程序连接远程服务器autodl 模型的推理需要借助远程服务器autodl&#xff0c;但是界面的运行是在pycharm中&#xff0c;我的设想是按钮调用一个py文件就好了。 1. 本地运行PyQt5界面。 2. 当需要载入权重时&#xff0c;通过SSH连接到AutodL服务…...

chili3d调试笔记8 打印零件属性 浏览器元素展开

无效&#xff0c; 返回的是节点不是坐标啥的&#xff0c; 找他的属性 把document和selectednote&#xff08;空集&#xff09;传给handleshowproperty方法 怎么获得selectnotes和selectnotes的property值 有selectnotes运行这段就行了 明天再搞 ----------------------------…...

新书速览|DeepSeek移动端AI应用开发:基于Android与iOS

《DeepSeek移动端AI应用开发&#xff1a;基于Android与iOS》 1 本书内容 《DeepSeek移动端AI应用开发:基于Android与iOS》深入剖析了DeepSeek平台的架构原理、API调用及开发实践等核心内容&#xff0c;助力读者在Android与iOS移动端高效集成DeepSeek API&#xff0c;打造出契…...

大模型面经 | DeepSpeed中ZeRO-1、ZeRO-2和ZeRO-3的区别是什么?

大家好,我是皮先生!! 今天给大家分享一些关于大模型面试常见的面试题,希望对大家的面试有所帮助。 往期回顾: 大模型面经 | 春招、秋招算法面试常考八股文附答案(RAG专题一) 大模型面经 | 春招、秋招算法面试常考八股文附答案(RAG专题二) 大模型面经 | 春招、秋招算法…...

Android调用springboot接口上传大字段,偶现接口超时的优化

介绍 最近有个功能&#xff0c;Android通过okhttp上传实体类&#xff0c;实体类包含一个大字段&#xff0c;上传的字符串长度达到300k&#xff0c;偶现接口超时的情况&#xff0c;大概100次有5次&#xff0c;看日志发现数据并没有到达接口&#xff0c;可能在网络传输中就超时了…...

在PyCharm中部署AI模型的完整指南

引言 随着人工智能技术的快速发展,越来越多的开发者开始将AI模型集成到他们的应用程序中。PyCharm作为一款强大的Python IDE,为AI开发提供了出色的支持。本文将详细介绍如何在PyCharm中部署AI模型,从环境配置到最终部署的完整流程。 第一部分:准备工作 1. 安装PyCharm …...

react组件之间如何使用接收到的className(封装一个按钮案例)

带有hover渐变效果 一、父组件 import LineGradientBox from ../line-gradient-box; import styles from ./index.module.scss;<LineGradientBoxfontSize{20}className{styles.btn_height}textSign upwidth"100%"onClick{() > {navigate(/sign-up);}} /> …...

JavaScript 数组常用方法解析

1. concat - 合并数组 语法&#xff1a; const newArray oldArray.concat(value1, value2, ..., arrayN); 作用&#xff1a; 将当前数组与其他数组或值合并&#xff0c;返回一个新数组&#xff0c;原数组不变。 测试案例&#xff1a; const arr1 [1, 2, 3]; const arr2…...

Linux知识--软件管理

1.RPM包 1.1简介 又称为二进制包&#xff0c;无需编译&#xff0c;可以直接使用 1.2工具 1.2.1YUM工具 简介 基于RPM包管理&#xff0c;能够从指定服务器自动下载RPM包并且安装 可以自动处理依赖关系&#xff0c;并且一次性安装所有依赖的软件包&#xff0c;无需一…...

09.传输层协议 ——— TCP协议

文章目录 TCP协议 谈谈可靠性TCP协议格式 序号与确认序号窗口大小六个标志位 确认应答机制&#xff08;ACK&#xff09;超时重传机制连接管理机制 三次握手四次挥手 流量控制滑动窗口拥塞控制延迟应答捎带应答面向字节流粘包问题TCP异常情况TCP小结基于TCP的应用层协议 TCP协…...

chromedp 反反爬设计方案

二、基础防护层实现 1. 浏览器特征伪装 opts : append(chromedp.DefaultExecAllocatorOptions[:],// 禁用自动化特征chromedp.Flag("disable-blink-features", "AutomationControlled"),chromedp.Flag("useAutomationExtension", false),// 随…...

数字化转型“变形记”:中钧科技经营帮如何让企业长出“智慧骨骼”

数字化转型就像给企业安装一个"智慧引擎"&#xff0c;而中钧科技的经营帮平台就是这台引擎的智能控制系统。让我们用"人体"来打个比方——当企业的数据、流程、决策像神经脉络般打通&#xff0c;才能真正实现灵活运转。下面就以经营帮的五大核心板块为例&a…...

【问题解决】centos7已经不维护了,如何继续使用yum源?

背景 CentOS 7 已于2024年6月30日停止维护&#xff0c;在停止维护后我们之前配置的国内镜像源大多都是空目录了&#xff0c;即在线国内镜像源不可用,就像下边这样提示&#xff1a; [rootbogon yum.repos.d]# yum install vim 已加载插件&#xff1a;fastestmirror Loading mi…...

Starrocks 数据均衡DiskAndTabletLoadReBalancer的实现

背景 最近在研究了一下 Starrocks的tablet的Rebalance的能力&#xff0c;这里进行记录一下 本文基于 StarRocks 3.3.5 结论 数据的rebalance 主要以两种模式来进行&#xff1a; 按照磁盘的使用率进行移动&#xff0c;如果每个BE的磁盘使用率不足tablet_sched_balance_load_…...

Redis 接收连接

阅读本文前&#xff0c;建议先看&#xff1a;Redis 事件循环&#xff08;Event Loop&#xff09;。 Redis 6 支持接收 3 种连接&#xff0c;对应的接收处理器如下&#xff1a; TCP&#xff1a;acceptTcpHandler&#xff1b;TLS&#xff1a;acceptTLSHandler&#xff1b;Unix …...

AGI大模型(12):向量检索之关键字搜索

1 检索的方式有那些 列举两种: 关键字搜索:通过用户输入的关键字来查找文本数据。语义搜索:不仅考虑关键词的匹配,还考虑词汇之间的语义关系,以提供更准确的搜索结果。2 关键字搜索 先看一个最基础的实现 安装模块 pip install redis 不会redis的去看我的redis专题 首…...

【计算机视觉】CV实战项目- Face-and-Emotion-Recognition 人脸情绪识别

Face-and-Emotion-Recognition 项目详细介绍 项目概述项目功能项目目录结构项目运行方式1. 环境准备2. 数据准备3. 模型训练4. 模型运行 常见问题及解决方法1. **安装依赖问题**2. **数据集问题**3. **模型训练问题**4. **模型运行问题** 项目实战建议项目参考文献 项目概述 F…...

基于国产 FPGA+ 龙芯2K1000处理器+翼辉国产操作系统继电保护装置测试装备解决方案

0 引言 近年来&#xff0c;我国自主可控芯片在国家政策和政 府的支持下发展迅速&#xff0c;并在电力、军工、机械、 通信、电子、医疗等领域掀起了国产化替代之 风&#xff0c;但在芯片自主可控和国产化替代方面还有明 显的不足之处。 2022年我国集成电路进口量多 达 5 3…...

如何批量为多个 Word 文档添加水印保护

在日常办公中&#xff0c;Word文档添加水印是一项重要的操作&#xff0c;特别是在需要保护文件内容的安全性和版权时。虽然Office自带了添加水印的功能&#xff0c;但当需要一次性给多个Word文档添加水印时&#xff0c;手动操作显得非常繁琐且低效。为了提高效率&#xff0c;可…...

Qt QThread 两种线程管理方法

在 Qt 中,QThread 有两种常见的用法,分别对应不同的线程管理模型。这两种方法各有优缺点,适用于不同的场景: 1. 子类化 QThread(继承 QThread,重写 run() 方法) 这是传统的线程用法,类似于 Java 或 C++ 标准库中的线程模型。通过继承 QThread 并重写 run() 方法,将需…...

长期行为序列建模技术演进:从SIM到TWIN-v2

背景 在推荐系统与广告投放领域&#xff0c;长期行为序列建模旨在从用户数月甚至数年的历史行为中捕捉稳定兴趣模式&#xff0c;是解决冷启动、提升推荐精度的关键。随着工业界需求激增&#xff0c;SIM、ETA、SDIM、TWIN及TWIN-v2等模型相继诞生&#xff0c;推动技术不断革新。…...