中间件--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!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/76795.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙NEXT开发权限工具类(申请授权相关)(ArkTs)

import abilityAccessCtrl, { Permissions } from ohos.abilityAccessCtrl; import { bundleManager, common, PermissionRequestResult } from kit.AbilityKit; import { BusinessError } from ohos.base; import { ToastUtil } from ./ToastUtil;/*** 权限工具类&#xff08;…

LVGL学习(二)(lv_label,lv_btn)

3-1_标签(lv_label) 一、标签的组成&#xff08;盒子模型&#xff09;​​ 标签由三个核心模块构成&#xff0c;类似便签纸的​​分层设计​​&#xff1a; ​​LV_PART_MAIN&#xff08;主体层&#xff09;​​ ​​功能​​&#xff1a;相当于便签纸的"纸面"&…

深度剖析神经网络:从基础原理到面试要点(二)

引言 在人工智能蓬勃发展的今天&#xff0c;神经网络作为其核心技术之一&#xff0c;广泛应用于图像识别、自然语言处理、语音识别等众多领域。深入理解神经网络的数学模型和结构&#xff0c;对于掌握人工智能技术至关重要。本文将对神经网络的关键知识点进行详细解析&#xf…

【java+Mysql】学生信息管理系统

学生信息管理系统是一种用于管理学生信息的软件系统&#xff0c;旨在提高学校管理效率和服务质量。本课程设计报告旨在介绍设计和实现学生信息管理系统的过程。报告首先分析了系统的需求&#xff0c;包括学生基本信息管理、成绩管理等功能。接着介绍了系统的设计方案&#xff0…

Linux mmp文件映射补充(自用)

addr一般为NULL由OS指明&#xff0c;length所需长度&#xff08;4kb对齐&#xff09;&#xff0c;prot&#xff08;权限&#xff0c;一般O_RDWR以读写&#xff09;&#xff0c; flag&#xff08;MAP_SHARED(不刷新到磁盘上&#xff0c;此进程独有)和MAP_PRIVATE&#xff08;刷新…

Nginx openresty web服务 与 Go 原生web服务性能对比

1 概述 Nginx采用的是IO复用模型&#xff0c;能处理超高并发。 Go语言采用协程&#xff0c;能轻量级的处理超高并发。 那么在不考虑业务逻辑复杂的前提下&#xff0c;即假如将Nginx和Go都提供一个/test接口&#xff0c;并在接口逻辑中都只是让其做20毫秒的耗时操作&#xff0c…

[创业之路-377]:企业法务 - 有限责任公司与股份有限公司的优缺点对比

有限责任公司&#xff08;简称“有限公司”&#xff09;与股份有限公司&#xff08;简称“股份公司”&#xff09;是我国《公司法》规定的两种主要公司形式&#xff0c;二者在设立条件、治理结构、股东权利义务等方面存在显著差异。以下从核心特征、设立条件、治理结构、股东权…

QEMU源码全解析 —— 块设备虚拟化(21)

接前一篇文章:QEMU源码全解析 —— 块设备虚拟化(20) 本文内容参考: 《趣谈Linux操作系统》 —— 刘超,极客时间 《QEMU/KVM源码解析与应用》 —— 李强,机械工业出版社 特此致谢! 上一回开始解析blockdev_init函数,讲到了其中调用的blk_new_open函数,该函数的作用…

蓝桥杯中的知识点

总结&#xff1a; 这次考的并不理想 比赛前好多知识点遗漏 但到此为止已经结束了 mod 是 模运算&#xff08;Modulo Operation&#xff09;的缩写&#xff0c;表示求两个数相除后的 余数 10mod31 (a % b) &#xff08;7%21&#xff09; 1e9代表1乘以10的9次方&#xff0c…

批量替换多个 Word 文档中的指定图片

在 Word 文档中&#xff0c;我们可以插入各种各样的图片&#xff0c;比如插入 logo、插入设计图、施工图等等。在某些情况下&#xff0c;我们也会碰到需要将 Word 文档中某张图片替换成其它图片的场景&#xff0c;比如将旧的 Logo 替换成新的 Logo。当我们有大量的 Word 文档需…

基于微信小程序的中医小妙招系统的设计与实现

hello hello~ &#xff0c;这里是 code袁~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f981;作者简介&#xff1a;一名喜欢分享和记录学习的在校大学生…

Java 8 新特性深度解析:现代编程的转折点

精心整理了最新的面试资料和简历模板&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 Java 8 是 Java 发展史上的重要里程碑&#xff0c;它引入了函数式编程范式、增强了集合处理能力&#xff0c;并彻底革新了日期时间处理方式。本文将通过代码示…

鹧鸪云平台实时追踪任务进度的核心机制

一、‌三维可视化监控‌ BIMGIS融合建模‌&#xff1a;通过无人机测绘与三维建模技术生成施工场地数字孪生模型&#xff0c;支持实时查看各标段三维模型与施工进度的匹配度&#xff0c;偏差超过5%自动触发预警。 进度匹配度分析‌&#xff1a;中央数据中台整合施工规划、资源…

【Spring Boot】MyBatis多表查询的操作:注解和XML实现SQL语句

1.准备工作 1.1创建数据库 &#xff08;1&#xff09;创建数据库&#xff1a; CREATE DATABASE mybatis_test DEFAULT CHARACTER SET utf8mb4;&#xff08;2&#xff09;使用数据库 -- 使⽤数据数据 USE mybatis_test;1.2 创建用户表和实体类 创建用户表 -- 创建表[⽤⼾表…

ISO15189认证有什么要求?ISO15189认证流程

ISO 15189 认证要求及流程详解 ISO 15189 是国际标准化组织&#xff08;ISO&#xff09;针对 医学实验室质量和能力 的认证标准&#xff0c;适用于医院检验科、第三方医学实验室、血站等机构。该认证确保实验室的技术能力和管理体系符合国际标准&#xff0c;提高检测结果的准确…

【Linux】调试工具gdb的认识和使用指令介绍(图文详解)

目录 1、debug和release的知识 2、gdb的使用和常用指令介绍&#xff1a; &#xff08;1&#xff09;、windows下调试的功能&#xff1a; &#xff08;2&#xff09;、进入和退出&#xff1a; &#xff08;3&#xff09;、调试过程中的相关指令&#xff1a; 3、调试究竟是在…

【Pytorch 中的扩散模型】去噪扩散概率模型(DDPM)的实现

介绍 广义上讲&#xff0c;扩散模型是一种生成式深度学习模型&#xff0c;它通过学习到的去噪过程来创建数据。扩散模型有很多变体&#xff0c;其中最流行的通常是文本条件模型&#xff0c;它可以根据提示生成特定的图像。一些扩散模型&#xff08;例如 Control-Net&#xff0…

Milvus(3):数据库、Collections说明

1 数据库 Milvus 在集合之上引入了数据库层&#xff0c;为管理和组织数据提供了更有效的方式&#xff0c;同时支持多租户。 1.1 什么是数据库 在 Milvus 中&#xff0c;数据库是组织和管理数据的逻辑单元。为了提高数据安全性并实现多租户&#xff0c;你可以创建多个数据库&am…

【质量管理】“武藏曲线”和“微笑曲线”的差异

什么是“微笑曲线” 在电子制造领域&#xff0c;“微笑曲线”&#xff08;Smiling Curve&#xff09;是由宏碁集团创始人施振荣于1992年提出的一个理论模型&#xff0c;用于描述产业链中不同环节的附加价值分布。该曲线因形状类似“微笑”而得名&#xff0c;核心观点是&#xf…

【html】a标签target属性以及扩展应用

进行页面新窗口打开跳转&#xff0c;我们使用 <a> 标签即可实现。 <a>标签可以通过设置target的值来控制此链接的打开方式&#xff0c;一般可取以下值&#xff1a; _self&#xff1a;默认值&#xff0c;链接在当前窗口打开 _blank&#xff1a;链接在新窗口打开 …