通过 Linux 系统服务,实现 IoTDB 更高效的启动方式!
IoTDB 是一个专为工业物联网领域设计的高性能时间序列数据库。在生产环境中,确保 IoTDB 集群的稳定运行至关重要。本文将介绍如何通过 Linux 系统服务来管理 IoTDB 集群,实现高效的启动、监控和自动重启。
01
基本配置
(1)背景
传统的 IoTDB 启动方式存在一些局限性,如后台启动需要额外参数,且不支持自动重试、开机启动等功能。为了解决这些问题,IoTDB在新版本(V1.3.1)中引入了 daemon-confignode.sh 和 daemon-datanode.sh 脚本来注册 IoTDB 为系统服务。
(2)环境需求
Linux 系统
存在 systemctl 命令
已设置 JAVA_HOME
操作用户为 root 或拥有对应权限
(3)新增脚本介绍
sbin/daemon-confignode.sh:注册 IoTDB ConfigNode 为系统服务。
sbin/daemon-datanode.sh:注册 IoTDB DataNode 为系统服务。
执行脚本后,IoTDB 的 ConfigNode 和 DataNode 将注册为系统服务。服务文件将生成在 /etc/systemd/system 目录下。我们可以使用 systemctl 命令来管理服务。
02
使用方式
(1)手动启动服务
systemctl start iotdb-confignode
systemctl start iotdb-datanode
(2)配置开机自启动
systemctl enable iotdb-confignode
systemctl enable iotdb-datanode
(3)取消开机自启动
systemctl disable iotdb-confignode
systemctl disable iotdb-datanode
(4)停止服务
systemctl stop iotdb-confignode
systemctl stop iotdb-datanode
停止服务后,状态应为 inactive (dead),否则需要查看日志分析原因。
注意:
使用 systemctl start iotdb-confignode、systemctl start iotdb-datanode 启动 IoTDB 后,可以用 sbin/stop-confignode.sh、sbin/stop-confignode.sh 的脚本去停止 IoTDB,此时不会自动重启对应节点。
使用sbin/start-confignode.sh、sbin/start-datanode.sh 启动 IoTDB 后,无法使用 systemctl 观测到进程状态(建议使用 systemctl 来进行启动和停止)。
(5)查看状态
systemctl status iotdb-confignode
systemctl status iotdb-datanode
(6)重启服务
systemctl restart iotdb-confignode
systemctl restart iotdb-datanode
03
服务特性及注意事项
(1)服务特性
服务将具备以下特性:
启动失败时自动重启。
异常退出时自动重启(如 Java 进程 OOM 或 JVM 崩溃)。
正常退出不会自动重启(如使用 kill 命令或 systemctl stop)。
(2)注意事项
IoTDB 日志位于 IoTDB 所在目录的 logs 目录下。
启动后可以使用 start-cli.sh 执行 show cluster 查看集群状态。
状态为 active (running) 时, 不代表服务完全启动,如果 10 分钟之后状态仍是 active (running) 则代码服务一定成功启动。
如果状态为 failed,需要查看日志并解决问题后,执行 systemctl daemon-reload 后再通过 systemctl 启动服务。
04
如何调整默认服务配置
(1)方式一
修改 daemon-confignode.sh、daemon-datanode.sh 中的 [Unit]、[Service]、[Install] 区域配置项,具体配置项的含义参考附录
执行 daemon-confignode.sh、daemon-datanode.sh 脚本
(2)方式二
修改 /etc/systemd/system 中的 iotdb-confignode.service、iotdb-datanode.service 文件
执行 systemctl deamon-reload
05
总结
本文详细介绍了如何通过 Linux 系统服务来高效管理 IoTDB 集群,重点在于实现自动启动、监控和重启。为了克服传统启动方式的局限性,IoTDB 在新版本(V1.3.1)中引入了 daemon-confignode.sh 和 daemon-datanode.sh 脚本,使得 IoTDB 可以注册为系统服务。
通过本文介绍的方法,可以显著提高 IoTDB 集群在生产环境中的管理效率,确保其稳定运行,实现高效的启动、监控和自动重启。欢迎大家使用!
规上企业应用实例
能源电力:中核武汉|国网信通产业集团|华润电力|大唐先一|上海电气国轩|清安储能|太极股份|绍兴安瑞思