Apache IoTDB 集群部署概述

Apache IoTDB 是一款专为物联网场景设计的高性能时序数据库,支持海量数据存储与高效查询。通过 Docker Compose 可以快速搭建 IoTDB 集群,实现高可用和水平扩展。

环境准备

确保系统已安装 Docker 和 Docker Compose。推荐使用 Linux 环境,资源分配至少 4GB 内存和 2 核 CPU。检查 Docker 版本:

docker --version
docker-compose --version

编写 Docker Compose 配置文件

创建 docker-compose.yml 文件,定义 IoTDB 集群服务。以下配置包含 1 个 ConfigNode 和 2 个 DataNode,组成最小集群:

version: '3.8'

services:
  confignode:
    image: apache/iotdb:1.2.0
    container_name: iotdb_confignode
    ports:
      - "22277:22277"
      - "22278:22278"
      - "22279:22279"
    volumes:
      - ./confignode/data:/iotdb/data
      - ./confignode/logs:/iotdb/logs
    environment:
      - MAX_HEAP_SIZE=2G
    command: ["config-node"]

  datanode1:
    image: apache/iotdb:1.2.0
    container_name: iotdb_datanode1
    ports:
      - "6667:6667"
      - "10730:10730"
      - "10740:10740"
      - "10750:10750"
    volumes:
      - ./datanode1/data:/iotdb/data
      - ./datanode1/logs:/iotdb/logs
    environment:
      - MAX_HEAP_SIZE=4G
    depends_on:
      - confignode
    command: ["data-node"]

  datanode2:
    image: apache/iotdb:1.2.0
    container_name: iotdb_datanode2
    ports:
      - "6668:6667"
      - "10731:10730"
      - "10741:10740"
      - "10751:10750"
    volumes:
      - ./datanode2/data:/iotdb/data
      - ./datanode2/logs:/iotdb/logs
    environment:
      - MAX_HEAP_SIZE=4G
    depends_on:
      - confignode
    command: ["data-node"]

启动集群

运行以下命令启动容器:

docker-compose up -d

验证容器状态:

docker-compose ps

集群验证

通过 IoTDB CLI 连接集群,默认端口为 6667

docker exec -it iotdb_datanode1 /iotdb/sbin/start-cli.sh -h datanode1

执行 SQL 检查节点状态:

SHOW DATANODES;

配置调优

根据硬件资源调整 MAX_HEAP_SIZE 参数。对于生产环境,建议:

  • ConfigNode 分配 2-4GB 内存
  • DataNode 分配 4-8GB 内存
    修改 environment 部分后重启服务:
docker-compose down && docker-compose up -d

数据持久化与备份

通过 Docker 卷挂载实现数据持久化。定期备份 /iotdb/data 目录至云存储或本地磁盘。

故障处理

查看容器日志定位问题:

docker logs iotdb_datanode1

常见问题包括端口冲突或资源不足,需检查防火墙和系统负载。

扩展集群规模

新增 DataNode 时,需在 docker-compose.yml 中添加服务并确保端口不冲突。更新配置后执行:

docker-compose up -d --scale datanode=3

安全配置

启用身份验证需修改 conf/iotdb-system.properties 文件:

enable_authorization=true

重启容器使配置生效。

更多推荐