华为openEuler安装clickhoue集群

一、服务器

        三台服务器,openEuler系统,都是100g系统,1t数据。

二、linux挂载数据盘

lsblk


NAME          MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
vda           252:0    0   100G  0 disk  # 这是100G系统盘(用户说的系统盘)
├─vda1        252:1    0   512M  0 part /boot/efi
├─vda2        252:2    0     1G  0 part /boot
└─vda3        252:3    0    98.5G 0 part
  ├─rootvg-root 253:0    0    30G  0 lvm  /
  ├─rootvg-var 253:1    0    10G  0 lvm  /var
  # (其他逻辑卷省略)
vdb           252:16   0   1.0T  0 disk  # 这就是你要找的1T数据盘!

1、第一步:给 1T 盘(vdb)分区(仅需执行 1 次)

目的是给 vdb 划分一个完整的分区(用整个 1T 空间),命令如下:

# 执行分区命令,操作vdb盘
fdisk /dev/vdb

进入 fdisk 交互模式后,按以下步骤输入指令(输入后按回车):

  1. n → 新建分区(create a new partition);
  2. 连续按 3 次回车 → 选择默认选项(分区类型:primary,分区编号:1,起始扇区:默认),直接用满整个 1T 空间;
  3. w → 保存分区表并退出(write table to disk and exit)。

执行完后,用 lsblk 验证,会看到 vdb 下面多了一个分区 vdb1(比如 vdb1 253:17 0 1T 0 part),说明分区成功。

2、第二步:格式化分区(vdb1)(仅需执行 1 次)

分区后需要格式化才能使用,推荐用 xfs 格式(ClickHouse 兼容好,性能稳定),命令:

# 格式化vdb1为xfs格式(注意:此命令会清空分区数据,当前是空盘,放心执行)
mkfs.xfs /dev/vdb1

等待几秒,出现类似 “meta-data=/dev/vdb1 isize=512 agcount=4, agsize=67108864 blks” 的输出,说明格式化成功。

3、第三步:创建挂载点 + 挂载磁盘(立即生效)

目的是把格式化后的 vdb1 挂载到一个目录,让系统和 ClickHouse 能访问,建议挂载到 /data(专门存数据的目录):

# 1. 创建挂载点目录(如果不存在)
mkdir -p /data

# 2. 挂载vdb1到/data目录
mount /dev/vdb1 /data

验证是否挂载成功:执行 df -h,会看到 /dev/vdb1 对应的挂载点是 /data,容量为 1T,说明挂载成功。

4、第四步:设置开机自动挂载(避免重启后失效)

当前挂载是临时的,服务器重启后会失效,需要写入 /etc/fstab 文件:

  1. 先获取 vdb1 的 UUID(唯一标识,比设备名更稳定):

blkid /dev/vdb1
  1. 输出示例:/dev/vdb1: UUID="abc123-def4-5678-90gh-ijklmnopqrst" TYPE="xfs",复制里面的 UUID 字符串(不含引号)。

  2. 编辑 /etc/fstab 文件,添加自动挂载配置:

vi /etc/fstab

在文件末尾添加一行(把下面的 UUID 替换成你实际复制的,其他不变):

UUID=abc123-def4-5678-90gh-ijklmnopqrst  /data  xfs  defaults  0  0
  1. 保存退出(vi 编辑器按 ESC,输入 :wq 回车)。

  2. 验证自动挂载配置是否正确(避免写错导致开机故障):

# 测试挂载所有fstab中的配置(无报错即正常)
mount -a

三、安装Clickhouse

        安装的是23.3.10.5版本,分别上传到三台服务器,然后分别进行安装,但是安装可以参考。

        安装过程中,密码要注意需要完全一致,在文档中准备好复制粘贴,别搞错了,最后组不成集群。

https://skydance.blog.youkuaiyun.com/article/details/154341567https://skydance.blog.youkuaiyun.com/article/details/154341567

cd /tmp/clickhouse
sudo rpm -ivh clickhouse-common-static-23.3.10.5.aarch64.rpm
sudo rpm -ivh clickhouse-server-23.3.10.5.aarch64.rpm
sudo rpm -ivh clickhouse-client-23.3.10.5.aarch64.rpm

       安装完之后,可以运行,查看状态、验证密码,不需要嫌麻烦,三台都要验证。

# 启动服务
sudo systemctl start clickhouse-server
 
# 查看服务状态(确保是 active (running))
sudo systemctl status clickhouse-server
 
# 用客户端连接(问我们要密码就输入)
clickhouse-client
 
# 查看版本(确认安装成功)
SELECT version();

        需要注意日志级别,还是config.xml,最上面就是日志的配置,自己行考虑,如果配置的颗粒度太细,非常占地方,可以考虑error级别啥的日志。

四、修改数据存储路径

        首先我们要停止服务,三台都要操作。

systemctl stop clickhouse-server
systemctl status clickhouse-server

        准备新的数据盘目录,假设新数据盘挂载在 /data/(需确保磁盘已挂载、权限正确),创建目标目录:

# 创建新目录(自定义名称,比如clickhouse_data)
mkdir -p /data/clickhouse
# 赋予clickhouse用户权限(关键!否则启动失败)
chown -R clickhouse:clickhouse /data/clickhouse
chmod -R 755 /data/clickhouse

        迁移原有数据到新目录,将默认目录 /var/lib/clickhouse/ 下的所有文件完整移动到新目录:

# 移动数据(mv比cp快,且保留权限;如果数据量大,可先用cp验证再删原目录)
mv /var/lib/clickhouse/* /data/clickhouse/
# 验证移动结果(新目录应有data、metadata、tmp等子目录)
ls /data/clickhouse/

        ClickHouse 的存储路径主要在 /etc/clickhouse-server/config.xml 中定义,需修改以下关键参数:

        这个是最主要的。

<path>/data/clickhouse/</path>

        修改之后重新启动

systemctl start clickhouse-server
# 查看启动状态
systemctl status clickhouse-server

五、修改配置组成集群

        三台服务器都都要配置,都是修改/etc/clickhouse-server/config.xml,(<macros><shard>1</shard><replica>replica_1</replica></macros>)这个三台服务器不能一样。

        keeper_server、zookeeper三个节点都要一样。

<macros><shard>1</shard><replica>replica_1</replica></macros>

<!-- ClickHouse Keeper配置(节点1:server_id=1) -->
<keeper_server>
  <tcp_port>9181</tcp_port>
  <server_id>1</server_id>  <!-- 节点1=1,节点2=2,节点3=3 -->
  <log_storage_path>/data/clickhouse/keeper/log</log_storage_path>
  <snapshot_storage_path>/data/clickhouse/keeper/snapshot</snapshot_storage_path>
  <coordination_settings>
    <operation_timeout_ms>10000</operation_timeout_ms>
    <session_timeout_ms>30000</session_timeout_ms>
  </coordination_settings>
  <raft_configuration>
    <server><id>1</id><hostname>10.36.39.123</hostname><port>9182</port></server>
    <server><id>2</id><hostname>10.36.39.124</hostname><port>9182</port></server>
    <server><id>3</id><hostname>10.36.39.125</hostname><port>9182</port></server>
  </raft_configuration>
</keeper_server>

<!-- 连接Keeper的客户端配置 -->
<zookeeper>
  <node><host>10.36.39.123</host><port>9181</port></node>
  <node><host>10.36.39.124</host><port>9181</port></node>
  <node><host>10.36.39.125</host><port>9181</port></node>
</zookeeper>

        然后还是/etc/clickhouse-server/config.xml文件,找到remote_servers,好像在700多行,增加你自己集群的配置。

<my_clickhouse_cluster>
      <shard>
        <internal_replication>true</internal_replication>
        <replica>
          <host>10.36.39.123</host>
          <port>9000</port>
          <user>default</user>
          <password_sha256_hex>f3efbde1c50789f7f92099ff9ae15bc8c6b12562e04b5545836310edc42e8b31</password_sha256_hex>
          <!--<password><![CDATA[9opdAidmi&35*]]></password>-->
        </replica>
        <replica>
          <host>10.36.39.124</host>
          <port>9000</port>
          <user>default</user>
          <password_sha256_hex>f3efbde1c50789f7f92099ff9ae15bc8c6b12562e04b5545836310edc42e8b31</password_sha256_hex>
          <!--<password><![CDATA[9opdAidmi&35*]]></password>-->
        </replica>
        <replica>
          <host>10.36.39.125</host>
          <port>9000</port>
          <user>default</user>
          <password_sha256_hex>f3efbde1c50789f7f92099ff9ae15bc8c6b12562e04b5545836310edc42e8b31</password_sha256_hex>
          <!--<password><![CDATA[9opdAidmi&35*]]></password>-->
        </replica>
      </shard>
    </my_clickhouse_cluster>

        修改每个机器的host,增加内容,因为我测试的时候发现是使用机器名互相访问的,也有可能是confgi.xml的ip端口啥的配置的不对,但是配置完就好了。

10.36.39.123 ecs-001
10.36.39.125 ecs-002
10.36.39.124 ecs-003

六、测试方式

        1、在任意节点创建一个表(创建表时,必须用 Replicated* 引擎(比如上面的 ReplicatedMergeTree),才能触发副本同步 —— 如果用普通引擎(比如 MergeTree),数据不会自动同步,只会存在你写入的那台节点上。),然后在其他节点show tables,看看是否已经存在了。

        2、在任意节点插入几条数据,到其它节点查询是否数据已经同步了。

        如果有问题,需要查看日志仔细排查。

七、java连接

url: jdbc:clickhouse://10.36.39.123:8123,10.36.39.124:8123,10.36.39.125:8123/default

### 在VMware中安装华为openEuler系统的步骤 #### 1. 下载OpenEuler镜像 访问OpenEuler官方网站下载页面,获取所需的镜像文件。版本为20.03LTS-SP3,下载链接如下: ``` https://www.openeuler.org/zh/download/archive/ ``` 如果需要更快的下载速度,可以选择国内镜像站点: ``` https://www.openeuler.org/zh/mirror/list/ ``` 选择适合的架构(如x86_64)并下载完整的镜像文件[^1]。 #### 2. 创建虚拟机 打开VMware Workstation,创建一个新的虚拟机: - 选择“自定义(高级)”选项,然后点击下一步。 - 保持默认设置,继续点击下一步。 - 选择“稍后安装操作系统(S)”,然后点击确认按钮。 #### 3. 配置虚拟机 - **操作系统选择**:选择Linux作为操作系统类型,具体版本选择CentOS 7 x64。 - **虚拟机名称和位置**:输入虚拟机的名称,并选择一个合适的存储位置。 - **磁盘容量**:指定磁盘容量,建议至少分配20GB的空间。 - **网络设置**:根据个人需求选择网络模式,推荐使用桥接模式以获得更好的网络连接[^3]。 #### 4. 安装OpenEuler - **启动虚拟机**:点击“开启此虚拟机”,进入安装界面。 - **选择安装选项**:选择第一个选项(通常为“Test and Install openEuler”),按回车键继续。 - **语言选择**:选择安装过程中使用的语言。 - **安装位置**:确保选择了正确的磁盘,并完成分区设置。 - **启用root账户**:在安装过程中,启用root账户并设置密码。 - **软件选择**:选择所有可用的软件包以确保系统功能完整。 - **网络和主机名**:配置网络设置,确保桥接网络已启用,并设置主机名。 - **开始安装**:确认所有设置无误后,开始安装过程。 #### 5. 安装完成后 - **重启系统**:安装完成后,系统会提示重启。 - **登录系统**:重启后,输入root用户名和密码登录系统。 #### 6. 安装图形界面(可选) 默认情况下,OpenEuler可能只提供命令行界面。如果需要图形界面,可以安装UKUI桌面环境: ```bash # 更新软件包列表 yum update -y # 安装UKUI桌面环境 yum groupinstall "UKUI Desktop" -y # 设置默认运行级别为图形界面 ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target # 重启系统以应用更改 reboot ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坐望云起

如果觉得有用,请不吝打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值