本文为真实环境手把手实战详解笔记。不赘诉,直接开始

一、实战环境:

        操作系统:ubuntu-24.04

        已经下载安装:iotdb-2.0.3

        已经安装java环境:java 1.8.0_451

二、为Apache IoTDB 2.0.3 单节点创建systemd服务来实现开机启动

1. 创建 systemd 服务文件

sudo nano /etc/systemd/system/iotdb.service

将以下内容复制到文件中

[Unit]
Description=Apache IoTDB 2.0.3 Time-Series Database
Documentation=https://iotdb.apache.org/
After=network.target

[Service]
Type=forking
User=ubuntu
Group=ubuntu
WorkingDirectory=/opt/apache-iotdb-2.0.3-all-bin

# 环境变量配置
Environment="JAVA_HOME=/java/jdk1.8.0_451"
Environment="PATH=$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Environment="IOTDB_HOME=/opt/apache-iotdb-2.0.3-all-bin"

# 启动命令
ExecStart=/opt/apache-iotdb-2.0.3-all-bin/sbin/start-standalone.sh
# 停止命令
ExecStop=/opt/apache-iotdb-2.0.3-all-bin/sbin/stop-standalone.sh

# 服务管理配置
Restart=on-failure
RestartSec=30s
TimeoutStartSec=5min
LimitNOFILE=65536
LimitNPROC=65536

# 日志配置
StandardOutput=journal
StandardError=journal
SyslogIdentifier=iotdb

# 安全配置
NoNewPrivileges=yes
ProtectSystem=full
PrivateTmp=yes
ProtectHome=read-only

[Install]
WantedBy=multi-user.target

2. 设置权限和环境

# 确保Java可执行权限
sudo chmod +x /java/jdk1.8.0_451/bin/java

# 设置IoTDB目录权限
sudo chown -R ubuntu:ubuntu /opt/apache-iotdb-2.0.3-all-bin

3. 启用并启动服务

# 重新加载systemd配置
sudo systemctl daemon-reload

# 启用开机启动
sudo systemctl enable iotdb

# 立即启动服务
sudo systemctl start iotdb

# 停止服务
sudo systemctl stop iotdb

# 重启服务
sudo systemctl restart iotdb

# 查看服务状态
sudo systemctl status iotdb

# 查看实时日志
sudo journalctl -u iotdb -f

# 禁用开机启动
sudo systemctl disable iotdb

4. 验证IoTDB运行

# 检查进程
ps aux | grep iotdb | grep -v grep

# 使用CLI连接测试
/opt/apache-iotdb-2.0.3-all-bin/sbin/start-cli.sh -h localhost -p 6667 -u root -pw root
> show databases;
> show devices;

6. 日志轮转配置(可选)

sudo nano /etc/logrotate.d/iotdb

添加以下内容:

/opt/apache-iotdb-2.0.3-all-bin/logs/*.log {
    daily
    missingok
    rotate 14
    compress
    delaycompress
    notifempty
    create 640 ubuntu ubuntu
    sharedscripts
    postrotate
        systemctl try-reload-or-restart iotdb >/dev/null 2>&1 || true
    endscript
}

7. 防火墙配置(如果需要远程访问)

sudo ufw allow 6667/tcp   # IoTDB客户端端口
sudo ufw allow 31999/tcp  # JMX监控端口
sudo ufw allow 5555/tcp   # Prometheus监控端口
sudo ufw reload

8. 环境检查脚本(可选)

创建环境检查脚本:

vim /opt/apache-iotdb-2.0.3-all-bin/check_iotdb_env.sh

添加以下内容

#!/bin/bash

# 检查Java环境
echo "=== Java环境检查 ==="
echo "JAVA_HOME: $JAVA_HOME"
$JAVA_HOME/bin/java -version

# 检查IoTDB服务状态
echo -e "\n=== IoTDB服务状态 ==="
sudo systemctl status iotdb --no-pager

# 检查端口监听
echo -e "\n=== 端口监听检查 ==="
echo "端口 6667:"
sudo ss -tuln | grep ':6667'
echo "端口 31999:"
sudo ss -tuln | grep ':31999'

# 检查日志错误
echo -e "\n=== 最近日志错误 ==="
sudo journalctl -u iotdb -S "1 hour ago" -p err..alert --no-pager

设置可执行权限:

chmod +x /opt/apache-iotdb-2.0.3-all-bin/check_iotdb_env.sh

执行结果

如果需要下载服务

完整卸载服务流程

# 停止并禁用服务
sudo systemctl stop iotdb
sudo systemctl disable iotdb

# 删除服务文件
sudo rm /etc/systemd/system/iotdb.service

# 重新加载systemd
sudo systemctl daemon-reload

# 删除日志轮转配置
sudo rm /etc/logrotate.d/iotdb

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐