为帮助大家少走弯路,轻松上手 KWDB(KaiwuDB 社区版) ,我们的《一文讲透》专栏正式营业啦!每一篇都会为大家分享超详细实用的数据库操作步骤与实战演练!
KWDB 是一款面向 AIoT 场景的分布式多模数据库产品,支持在同一实例同时建立时序库和关系库并融合处理多模数据,具备千万级设备接入、百万级数据秒级写入、亿级数据秒级读取等时序数据高效处理能力。
大家可以放心地使用 KWDB 来解决在物联网、能源电力、车联网、智慧政务等各类场景下遇到的数据处理难题。有遇到问题都可以在文末扫码联系小K 为你解答!🙆
1、硬件
如下为部署 KWDB 所需的硬件规格:
项目 | 要求 |
---|---|
CPU 和内存 | 建议不低于 4 核 8G。 |
磁盘 | - 推荐使用 SSD 或者 NVMe 设备,尽量避免使用 NFS、CIFS、CEPH 等共享存储。 - 磁盘必须能够实现 500 IOPS 和 30 MB/s 处理效率。 |
文件系统 | 建议使用 ext4 文件系统。 |
✔️Tip:实际部署时,用户可以根据实际的业务规模和性能要求规划硬件资源。
2、操作系统
KWDB 支持在以下服务器操作系统进行安装部署。
操作系统 | 版本 | 架构 |
---|---|---|
Ubuntu | V20.04 | ARM_64 |
V20.04 | x86_64 | |
V22.04 | x86_64 | |
KylinOS | V10 | x86_64 |
V10 | ARM_64 | |
UOS | V20 | x86_64 |
✔️Tip:如使用上述未提及的操作系统,可能会存在问题,可及时与我们联系解决。
3、软件依赖
安装时,KWDB 会对依赖进行检查。如果缺少依赖会退出安装并提示依赖缺失。如果目标机器不能联网,用户需要在能联网的机器上根据目标机器的操作系统下载好所有依赖文件,然后将依赖文件复制到目标机器上进行安装。
不同操作系统及安装包的依赖略有不同,请根据实际安装包类型及操作系统,在部署前安装好相应的依赖。下表列出需要在目标机器安装的依赖:
依赖 | 版本 | 说明 |
---|---|---|
OpenSSL | v1.1.1+ | N/A |
Protobuf | v3.5.0+ | N/A |
GEOS | v3.3.8+ | 可选依赖 |
xz-libs | v5.2.0+ | N/A |
squashfs-tools | any | N/A |
libgcc | v7.3.0+ | N/A |
mount | any | N/A |
squashfuse | any | 可选依赖 |
4、端口要求
端口号 | 说明 |
---|---|
8080 | 数据库 Web 服务端口 |
26257 | 数据库服务端口、节点监听端口和对外连接端口 |
5、安装包处理
tar -zxvf <package_name>
解压后生成的目录包含以下文件:
文件 | 说明 |
---|---|
add_user.sh | 安装、启动 KWDB 后,为 KWDB 数据库创建用户。 |
deploy.cfg | 安装部署配置文件,用于配置部署节点的 IP 地址、端口等配置信息。 |
deploy.sh | 安装部署脚本,用于安装、卸载、启动、状态获取、关停和重启等操作。 |
packages 目录 | 存放 DEB、RPM 和镜像包。 |
utils 目录 | 存放工具类脚本。 |
monitoring 目录 | 存放 Prometheus 配置文件、Grafana Dashboard 模板等文件。 |
部署 KWDB 时,系统首先将对配置文件、运行环境、硬件配置和软件依赖进行检查:
如果相应硬件未能满足要求,系统将继续安装,并提示硬件规格不满足要求;
如果软件依赖未能满足要求,系统将中止安装,并提供相应的提示信息。
在部署过程中,系统会自动生成相关日志。如果部署时出现错误,用户可以通过查看终端输出或 KWDB 安装目录中 log 目录里的日志文件,获取详细的错误信息。
部署完成后,系统会将 KWDB 封装成系统服务(名称为 kaiwudb),并生成以下文件:
kaiwudb.service:配置 KWDB 的 CPU 资源占用率;
kaiwudb.service:配置 KWDB 启动参数。
✔️ 总结在部署前,首先要先确定:
待部署节点的硬件、操作系统、软件依赖和端口满足安装部署要求;
安装用户为 root 用户或者拥有 sudo 权限的普通用户。
详细部署步骤如下👀:
👉(1)登录待部署节点,编辑安装包目录下的 deploy.cfg 配置文件,设置安全模式、管理用户、服务端口等信息。
默认情况下,deploy.cfg 配置文件中包含集群配置参数,需删除或注释 [cluster] 集群配置项。
配置文件示例:
[global]
secure_mode=y
management_user=kaiwudb
rest_port=8080
kaiwudb_port=26257
data_root=/var/lib/kaiwudb
cpu=1
[local]
node_addr=192.168.64.128
# [cluster]
# node_addr=192.168.64.129, 192.168.64.130
# ssh_port=22
# ssh_user=admin
相应参数说明:
global:全局配置
secure_mode:是否开启安全模式,默认开启安全模式。开启安全模式后,KWDB 生成 TLS 安全证书,作为客户端或应用程序连接数据库的凭证。生成的客户端相关证书存放在 /etc/kaiwudb/certs 目录;
management_user:KWDB 的管理用户,默认为 kaiwudb。安装部署后,KWDB 创建相应的管理用户以及和管理用户同名的用户组;
rest_port:KWDB Web 服务端口,默认为 8080;
kaiwudb_port:KWDB 服务端口,默认为 26257;
data_root:数据目录,默认为 /var/lib/kaiwudb;
cpu: 可选参数,用于指定 KWDB 服务占用当前节点服务器 CPU 资源的比例,默认无限制。取值范围为 [0,1],最大精度为小数点后两位。
local:本地节点配置
node_addr:本地节点对外提供服务的 IP 地址,监听地址为 0.0.0.0,端口为 KWDB 服务端口。
👉(2)为 deploy.sh
脚本添加运行权限。
chmod +x ./deploy.sh
👉(3)执行单机部署安装命令。
./deploy.sh install --single
执行成功后,控制台输出以下信息:
INSTALL COMPLETED: KaiwuDB has been installed successfuly! ...
👉(4)启动 KWDB 节点。
./deploy.sh start
执行成功后,控制台输出以下信息:
START COMPLETED: KaiwuDB has started successfuly! ...
✔️Tip:在 KylinOS 操作系统中,系统可能会提示输入用户密码。此时,无需输入密码,直接按回车键确认即可。
👉(5)查看 KWDB 节点状态。
./deploy.sh status
或者
systemctl status kaiwudb
👉(6)配置 KWDB 开机自启动。
配置 KWDB 开机自启动后,如果系统重启,则自动启动 KWDB。
systemctl enable kaiwudb
1、硬件
如下为部署 KWDB 所需的硬件规格:
项目 | 要求 |
---|---|
CPU 和内存 | 建议不低于 4 核 8G。 |
磁盘 | - 推荐使用 SSD 或者 NVME 设备,尽量避免使用 NFS、CIFS、CEPH 等共享存储。 - 磁盘必须能够实现 500 IOPS 和 30 MB/s 处理效率。 |
文件系统 | 建议使用 ext4 文件系统。 |
✔️Tip:实际部署时,用户可以根据实际的业务规模和性能要求规划硬件资源。
2、操作系统
KWDB 容器镜像支持在以下已安装 Docker 的操作系统中进行安装部署。
操作系统 | 版本 | 架构 |
---|---|---|
Ubuntu | V20.04 | ARM_64 |
V20.04 | x86_64 | |
V22.04 | x86_64 | |
V22.04 | ARM_64 | |
KylinOS | V10 | x86_64 |
V10 | ARM_64 | |
Debian | V11 | ARM_64 |
UOS | V20 | x86_64 |
CentOS | 7 | x86_64 |
8 | x86_64 | |
openEuler | 22.03 | x86_64 |
3、软件依赖
sudo apt-get install docker-compose
4、端口要求
端口号 | 说明 |
---|---|
8080 | 数据库 Web 服务端口 |
26257 | 数据库服务端口、节点监听端口和对外连接端口 |
5、安装包处理
tar -zxvf <install_package_name>
解压后生成的目录包含以下文件:
文件 | 说明 |
---|---|
add_user.sh | 安装、启动 KWDB 后,为 KWDB 数据库创建用户。 |
deploy.cfg | 安装部署配置文件,用于配置部署节点的 IP 地址、端口等配置信息。 |
deploy.sh | 安装部署脚本,用于安装、卸载、启动、状态获取、关停和重启等操作。 |
packages 目录 | 存放 DEB、RPM 和镜像包。 |
utils 目录 | 存放工具类脚本。 |
部署 KWDB 时,系统首先将对配置文件、运行环境、硬件配置和软件依赖进行检查:
如果相应硬件未能满足要求,系统将继续安装,并提示硬件规格不满足要求;
如果软件依赖未能满足要求,系统将中止安装,并提供相应的提示信息。
在部署过程中,系统会自动生成相关日志。如果部署时出现错误,用户可以通过查看终端输出或 KWDB 安装目录中 log 目录里的日志文件,获取详细的错误信息。
部署完成后,系统生成 /etc/kaiwudb/ 目录。Docker Compose 配置文件 docker-compose.yml 位于 /etc/kaiwudb/script 目录下。
部署完成后,用户可以修改 Docker Compose 配置文件 docker-compose.yml,配置 KWDB 的启动参数和 CPU 资源占用率。
有关定制化部署配置的详细信息,参见配置集群(https://gitee.com/kwdb/docs/blob/2.0/deployment/docker/cluster-config-docker.md)。
我们支持使用安装脚本和 YAML(.yml)文件两种方式部署 KWDB。安装脚本部署支持安全模式和非安全模式。 使用 YAML(.yml)文件进行部署时,仅支持非安全模式,登录 KWDB 数据库时需使用非安全连接模式。
✔️总结在部署前,首先要先确定:
待部署节点的硬件、操作系统、软件依赖和端口满足安装部署要求; 安装用户为 root 用户或者拥有 sudo 权限的普通用户:root 用户和配置 sudo 免密的普通用户在执行部署脚本时无需输入密码;未配置 sudo 免密的普通用户在执行部署脚本时,需要输入密码进行提权; 安装用户为非 root 用户时,需要通过 sudo usermod -aG docker $USER 命令将用户添加到 docker 组。
使用安装脚本部署 KWDB👀:
👉(1)登录待部署节点,编辑安装包目录下的 deploy.cfg 配置文件,设置安全模式、管理用户、服务端口等信息。
默认情况下,deploy.cfg 配置文件中包含集群配置参数,需删除或注释 [cluster] 集群配置项。
配置文件示例:
[global]
secure_mode=y
management_user=kaiwudb
rest_port=8080
kaiwudb_port=26257
data_root=/var/lib/kaiwudb
cpu=1
[local]
node_addr=192.168.64.128
# [cluster]
# node_addr=192.168.64.129, 192.168.64.130
# ssh_port=22
# ssh_user=admin
相关参数说明:
global:全局配置
secure_mode:是否开启安全模式,默认开启安全模式。开启安全模式后,KWDB 生成 TLS 安全证书,作为客户端或应用程序连接数据库的凭证。生成的客户端相关证书存放在 /etc/kaiwudb/certs 目录;
management_user:KWDB 的管理用户,默认为 kaiwudb。安装部署后,KWDB 创建相应的管理用户以及和管理用户同名的用户组;
rest_port:KWDB Web 服务端口,默认为 8080;
kaiwudb_port:KWDB 服务端口,默认为 26257;
data_root:数据目录,默认为 /var/lib/kaiwudb;
cpu: 可选参数,用于指定 KWDB 服务占用当前节点服务器 CPU 资源的比例,默认无限制。取值范围为 [0,1],最大精度为小数点后两位。
local:本地节点配置
node_addr:本地节点对外提供服务的 IP 地址,监听地址为 0.0.0.0,端口为 KWDB 服务端口。
👉(2)为 deploy.sh
脚本添加运行权限。
chmod +x ./deploy.sh
👉(3)执行单机部署安装命令。
./deploy.sh install --single
👉(4)执行成功后,控制台输出以下信息:
INSTALL COMPLETED: KaiwuDB has been installed successfuly! ...
👉(5)启动 KWDB 节点。
./deploy.sh start
执行成功后,控制台输出以下信息:
START COMPLETED: KaiwuDB has started successfuly! ...
👉(6)查看 KWDB 节点状态。
./deploy.sh status
或者
systemctl status kaiwudb
👉(7)配置 KWDB 开机自启动(可选)。
配置 KWDB 开机自启动后,如果系统重启,则自动启动 KWDB。
systemctl enable kaiwudb
使用 YAML 文件部署 KWDB 👀:
👉(1)在 kaiwudb_install/packages 目录下导入 KaiwuDB.tar 文件,获取镜像名称。
# docker load < KaiwuDB.tar
Loaded image: "path-to-your-docker-image"
👉(2)创建 docker-compose.yml 配置文件。
配置文件示例:
version: '3.3'
services:
kaiwudb-container:
image: "path-to-your-docker-image"
container_name: kaiwudb-experience
hostname: kaiwudb-experience
ports:
- 8080:8080
- 26257:26257
ulimits:
memlock: -1
volumes:
- /dev:/dev
networks:
- default
restart: on-failure
ipc: shareable
privileged: true
environment:
- LD_LIBRARY_PATH=/kaiwudb/lib
tty: true
working_dir: /kaiwudb/bin
command:
- /bin/bash
- -c
- |
/kaiwudb/bin/kwbase start-single-node --insecure --listen-addr=0.0.0.0:26257 --advertise-addr=127.0.0.1:26257 --http-addr=0.0.0.0:8080 --store=/kaiwudb/deploy/kaiwudb
image 参数的取值必须是导入 KaiwuDB.tar 文件后获取的镜像名称。
👉(3)运行以下命令,快速启动 KWDB。
docker-compose up -d
👉(4)配置 KWDB 开机自启动(可选)。
配置 KWDB 开机自启动后,如果系统重启,则自动启动 KWDB。
systemctl enable kaiwudb
以上就是本期的安装部署教程,你学“废”了么!点击关注,下一期想和大家一起实现 KWDB 的快速访问
点击解锁“KWDB”!