集群运维命令
大约 7 分钟
集群运维命令
展示集群配置
当前 IoTDB 支持使用如下 SQL 展示集群的关键参数:
SHOW VARIABLES
示例:
IoTDB> show variables
+----------------------------------+-----------------------------------------------------------------+
| Variable| Value|
+----------------------------------+-----------------------------------------------------------------+
| ClusterName| defaultCluster|
| DataReplicationFactor| 1|
| SchemaReplicationFactor| 1|
| DataRegionConsensusProtocolClass| org.apache.iotdb.consensus.iot.IoTConsensus|
|SchemaRegionConsensusProtocolClass| org.apache.iotdb.consensus.ratis.RatisConsensus|
| ConfigNodeConsensusProtocolClass| org.apache.iotdb.consensus.ratis.RatisConsensus|
| TimePartitionInterval| 604800000|
| DefaultTTL(ms)| 9223372036854775807|
| ReadConsistencyLevel| strong|
| SchemaRegionPerDataNode| 1.0|
| DataRegionPerProcessor| 1.0|
| LeastDataRegionGroupNum| 5|
| SeriesSlotNum| 10000|
| SeriesSlotExecutorClass|org.apache.iotdb.commons.partition.executor.hash.BKDRHashExecutor|
| DiskSpaceWarningThreshold| 0.05|
+----------------------------------+-----------------------------------------------------------------+
Total line number = 15
It costs 0.225s
注意: 必须保证该 SQL 展示的所有配置参数在同一集群各个节点完全一致
展示 ConfigNode 信息
当前 IoTDB 支持使用如下 SQL 展示 ConfigNode 的信息:
SHOW CONFIGNODES
示例:
IoTDB> show confignodes
+------+-------+---------------+------------+--------+
|NodeID| Status|InternalAddress|InternalPort| Role|
+------+-------+---------------+------------+--------+
| 0|Running| 127.0.0.1| 10710| Leader|
| 1|Running| 127.0.0.1| 10711|Follower|
| 2|Running| 127.0.0.1| 10712|Follower|
+------+-------+---------------+------------+--------+
Total line number = 3
It costs 0.030s
ConfigNode 状态定义
对 ConfigNode 各状态定义如下:
- Running: ConfigNode 正常运行
- Unknown: ConfigNode 未正常上报心跳
展示 DataNode 信息
当前 IoTDB 支持使用如下 SQL 展示 DataNode 的信息:
SHOW DATANODES
示例:
IoTDB> create timeseries root.sg.d1.s1 with datatype=BOOLEAN,encoding=PLAIN
Msg: The statement is executed successfully.
IoTDB> create timeseries root.sg.d2.s1 with datatype=BOOLEAN,encoding=PLAIN
Msg: The statement is executed successfully.
IoTDB> create timeseries root.ln.d1.s1 with datatype=BOOLEAN,encoding=PLAIN
Msg: The statement is executed successfully.
IoTDB> show datanodes
+------+-------+----------+-------+-------------+---------------+
|NodeID| Status|RpcAddress|RpcPort|DataRegionNum|SchemaRegionNum|
+------+-------+----------+-------+-------------+---------------+
| 1|Running| 127.0.0.1| 6667| 0| 1|
| 2|Running| 127.0.0.1| 6668| 0| 1|
+------+-------+----------+-------+-------------+---------------+
Total line number = 2
It costs 0.007s
IoTDB> insert into root.ln.d1(timestamp,s1) values(1,true)
Msg: The statement is executed successfully.
IoTDB> show datanodes
+------+-------+----------+-------+-------------+---------------+
|NodeID| Status|RpcAddress|RpcPort|DataRegionNum|SchemaRegionNum|
+------+-------+----------+-------+-------------+---------------+
| 1|Running| 127.0.0.1| 6667| 1| 1|
| 2|Running| 127.0.0.1| 6668| 0| 1|
+------+-------+----------+-------+-------------+---------------+
Total line number = 2
It costs 0.006s
DataNode 状态定义
DataNode 的状态机如下图所示:
对 DataNode 各状态定义如下:
- Running: DataNode 正常运行,可读可写
- Unknown: DataNode 未正常上报心跳,ConfigNode 认为该 DataNode 不可读写
- Removing: DataNode 正在移出集群,不可读写
- ReadOnly: DataNode 磁盘剩余空间低于 disk_warning_threshold(默认 5%),DataNode 可读但不能写入,不能同步数据
展示全部节点信息
当前 IoTDB 支持使用如下 SQL 展示全部节点的信息:
SHOW CLUSTER
示例:
IoTDB> show cluster
+------+----------+-------+---------------+------------+
|NodeID| NodeType| Status|InternalAddress|InternalPort|
+------+----------+-------+---------------+------------+
| 0|ConfigNode|Running| 127.0.0.1| 10710|
| 1|ConfigNode|Running| 127.0.0.1| 10711|
| 2|ConfigNode|Running| 127.0.0.1| 10712|
| 3| DataNode|Running| 127.0.0.1| 10730|
| 4| DataNode|Running| 127.0.0.1| 10731|
| 5| DataNode|Running| 127.0.0.1| 10732|
+------+----------+-------+---------------+------------+
Total line number = 6
It costs 0.011s
在节点被关停后,它的状态也会改变,如下所示:
IoTDB> show cluster
+------+----------+-------+---------------+------------+
|NodeID| NodeType| Status|InternalAddress|InternalPort|
+------+----------+-------+---------------+------------+
| 0|ConfigNode|Running| 127.0.0.1| 10710|
| 1|ConfigNode|Unknown| 127.0.0.1| 10711|
| 2|ConfigNode|Running| 127.0.0.1| 10712|
| 3| DataNode|Running| 127.0.0.1| 10730|
| 4| DataNode|Running| 127.0.0.1| 10731|
| 5| DataNode|Running| 127.0.0.1| 10732|
+------+----------+-------+---------------+------------+
Total line number = 6
It costs 0.012s
展示全部节点的详细配置信息:
SHOW CLUSTER DETAILS
示例:
IoTDB> show cluster details
+------+----------+-------+---------------+------------+-------------------+----------+-------+-------+-------------------+-----------------+
|NodeID| NodeType| Status|InternalAddress|InternalPort|ConfigConsensusPort|RpcAddress|RpcPort|MppPort|SchemaConsensusPort|DataConsensusPort|
+------+----------+-------+---------------+------------+-------------------+----------+-------+-------+-------------------+-----------------+
| 0|ConfigNode|Running| 127.0.0.1| 10710| 10720| | | | | |
| 1|ConfigNode|Running| 127.0.0.1| 10711| 10721| | | | | |
| 2|ConfigNode|Running| 127.0.0.1| 10712| 10722| | | | | |
| 3| DataNode|Running| 127.0.0.1| 10730| | 127.0.0.1| 6667| 10740| 10750| 10760|
| 4| DataNode|Running| 127.0.0.1| 10731| | 127.0.0.1| 6668| 10741| 10751| 10761|
| 5| DataNode|Running| 127.0.0.1| 10732| | 127.0.0.1| 6669| 10742| 10752| 10762|
+------+----------+-------+---------------+------------+-------------------+----------+-------+-------+-------------------+-----------------+
Total line number = 6
It costs 0.340s
展示 Region 信息
集群中以 SchemaRegion/DataRegion 作为元数据/数据的复制和管理单元,Region 的状态和分布对于系统运维和测试有很大帮助,如以下场景:
- 查看集群中各个 Region 被分配到了哪些 DataNode,是否均衡
- 查看集群中各个 Region 被分配了哪些分区,是否均衡
- 查看集群中各个 RegionGroup 的 leader 被分配到了哪些 DataNode,是否均衡
当前 IoTDB 支持使用如下 SQL 展示 Region 信息:
SHOW REGIONS
: 展示所有 Region 分布SHOW SCHEMA REGIONS
: 展示所有 SchemaRegion 分布SHOW DATA REGIONS
: 展示所有 DataRegion 分布SHOW (DATA|SCHEMA)? REGIONS OF DATABASE <sg1,sg2,...>
: 展示指定数据库 <sg1,sg2,...> 对应的 Region 分布
展示所有 Region 的分布:
IoTDB> show regions
+--------+------------+-------+--------+-----------+---------+----------+----------+-------+--------+
|RegionId| Type| Status|Database|SeriesSlots|TimeSlots|DataNodeId|RpcAddress|RpcPort| Role|
+--------+------------+-------+--------+-----------+---------+----------+----------+-------+--------+
| 0| DataRegion|Running|root.sg1| 1| 1| 1| 127.0.0.1| 6667|Follower|
| 0| DataRegion|Running|root.sg1| 1| 1| 2| 127.0.0.1| 6668| Leader|
| 0| DataRegion|Running|root.sg1| 1| 1| 3| 127.0.0.1| 6669|Follower|
| 1|SchemaRegion|Running|root.sg1| 1| 0| 1| 127.0.0.1| 6667|Follower|
| 1|SchemaRegion|Running|root.sg1| 1| 0| 2| 127.0.0.1| 6668|Follower|
| 1|SchemaRegion|Running|root.sg1| 1| 0| 3| 127.0.0.1| 6669| Leader|
| 2| DataRegion|Running|root.sg2| 1| 1| 1| 127.0.0.1| 6667| Leader|
| 2| DataRegion|Running|root.sg2| 1| 1| 2| 127.0.0.1| 6668|Follower|
| 2| DataRegion|Running|root.sg2| 1| 1| 3| 127.0.0.1| 6669|Follower|
| 3|SchemaRegion|Running|root.sg2| 1| 0| 1| 127.0.0.1| 6667|Follower|
| 3|SchemaRegion|Running|root.sg2| 1| 0| 2| 127.0.0.1| 6668| Leader|
| 3|SchemaRegion|Running|root.sg2| 1| 0| 3| 127.0.0.1| 6669|Follower|
+--------+------------+-------+--------+-----------+---------+----------+----------+-------+--------+
Total line number = 12
It costs 0.165s
展示 SchemaRegion 或 DataRegion 的分布:
IoTDB> show data regions
+--------+------------+-------+--------+-----------+---------+----------+----------+-------+--------+
|RegionId| Type| Status|Database|SeriesSlots|TimeSlots|DataNodeId|RpcAddress|RpcPort| Role|
+--------+------------+-------+--------+-----------+---------+----------+----------+-------+--------+
| 0| DataRegion|Running|root.sg1| 1| 1| 1| 127.0.0.1| 6667|Follower|
| 0| DataRegion|Running|root.sg1| 1| 1| 2| 127.0.0.1| 6668| Leader|
| 0| DataRegion|Running|root.sg1| 1| 1| 3| 127.0.0.1| 6669|Follower|
| 2| DataRegion|Running|root.sg2| 1| 1| 1| 127.0.0.1| 6667| Leader|
| 2| DataRegion|Running|root.sg2| 1| 1| 2| 127.0.0.1| 6668|Follower|
| 2| DataRegion|Running|root.sg2| 1| 1| 3| 127.0.0.1| 6669|Follower|
+--------+------------+-------+--------+-----------+---------+----------+----------+-------+--------+
Total line number = 6
It costs 0.011s
IoTDB> show schema regions
+--------+------------+-------+--------+-----------+---------+----------+----------+-------+--------+
|RegionId| Type| Status|Database|SeriesSlots|TimeSlots|DataNodeId|RpcAddress|RpcPort| Role|
+--------+------------+-------+--------+-----------+---------+----------+----------+-------+--------+
| 1|SchemaRegion|Running|root.sg1| 1| 0| 1| 127.0.0.1| 6667|Follower|
| 1|SchemaRegion|Running|root.sg1| 1| 0| 2| 127.0.0.1| 6668|Follower|
| 1|SchemaRegion|Running|root.sg1| 1| 0| 3| 127.0.0.1| 6669| Leader|
| 3|SchemaRegion|Running|root.sg2| 1| 0| 1| 127.0.0.1| 6667|Follower|
| 3|SchemaRegion|Running|root.sg2| 1| 0| 2| 127.0.0.1| 6668| Leader|
| 3|SchemaRegion|Running|root.sg2| 1| 0| 3| 127.0.0.1| 6669|Follower|
+--------+------------+-------+--------+-----------+---------+----------+----------+-------+--------+
Total line number = 6
It costs 0.012s
展示指定数据库 <sg1,sg2,...> 对应的 Region 分布:
IoTDB> show regions of database root.sg1
+--------+------------+-------+--------+-----------+---------+----------+----------+-------+--------+
|RegionId| Type| Status|Database|SeriesSlots|TimeSlots|DataNodeId|RpcAddress|RpcPort| Role|
+--------+------------+-------+-- -----+-----------+---------+----------+----------+-------+--------+
| 0| DataRegion|Running|root.sg1| 1| 1| 1| 127.0.0.1| 6667|Follower|
| 0| DataRegion|Running|root.sg1| 1| 1| 2| 127.0.0.1| 6668| Leader|
| 0| DataRegion|Running|root.sg1| 1| 1| 3| 127.0.0.1| 6669|Follower|
| 1|SchemaRegion|Running|root.sg1| 1| 0| 1| 127.0.0.1| 6667|Follower|
| 1|SchemaRegion|Running|root.sg1| 1| 0| 2| 127.0.0.1| 6668|Follower|
| 1|SchemaRegion|Running|root.sg1| 1| 0| 3| 127.0.0.1| 6669| Leader|
+--------+------------+-------+--------+-----------+---------+----------+----------+-------+--------+
Total line number = 6
It costs 0.007s
IoTDB> show regions of database root.sg1, root.sg2
+--------+------------+-------+--------+-----------+---------+----------+----------+-------+--------+
|RegionId| Type| Status|Database|SeriesSlots|TimeSlots|DataNodeId|RpcAddress|RpcPort| Role|
+--------+------------+-------+--------+-----------+---------+----------+----------+-------+--------+
| 0| DataRegion|Running|root.sg1| 1| 1| 1| 127.0.0.1| 6667|Follower|
| 0| DataRegion|Running|root.sg1| 1| 1| 2| 127.0.0.1| 6668| Leader|
| 0| DataRegion|Running|root.sg1| 1| 1| 3| 127.0.0.1| 6669|Follower|
| 1|SchemaRegion|Running|root.sg1| 1| 0| 1| 127.0.0.1| 6667|Follower|
| 1|SchemaRegion|Running|root.sg1| 1| 0| 2| 127.0.0.1| 6668|Follower|
| 1|SchemaRegion|Running|root.sg1| 1| 0| 3| 127.0.0.1| 6669| Leader|
| 2| DataRegion|Running|root.sg2| 1| 1| 1| 127.0.0.1| 6667| Leader|
| 2| DataRegion|Running|root.sg2| 1| 1| 2| 127.0.0.1| 6668|Follower|
| 2| DataRegion|Running|root.sg2| 1| 1| 3| 127.0.0.1| 6669|Follower|
| 3|SchemaRegion|Running|root.sg2| 1| 0| 1| 127.0.0.1| 6667|Follower|
| 3|SchemaRegion|Running|root.sg2| 1| 0| 2| 127.0.0.1| 6668| Leader|
| 3|SchemaRegion|Running|root.sg2| 1| 0| 3| 127.0.0.1| 6669|Follower|
+--------+------------+-------+--------+-----------+---------+----------+----------+-------+--------+
Total line number = 12
It costs 0.009s
IoTDB> show data regions of database root.sg1, root.sg2
+--------+----------+-------+--------+-----------+---------+----------+----------+-------+--------+
|RegionId| Type| Status|Database|SeriesSlots|TimeSlots|DataNodeId|RpcAddress|RpcPort| Role|
+--------+----------+-------+--------+-----------+---------+----------+----------+-------+--------+
| 0|DataRegion|Running|root.sg1| 1| 1| 1| 127.0.0.1| 6667|Follower|
| 0|DataRegion|Running|root.sg1| 1| 1| 2| 127.0.0.1| 6668| Leader|
| 0|DataRegion|Running|root.sg1| 1| 1| 3| 127.0.0.1| 6669|Follower|
| 2|DataRegion|Running|root.sg2| 1| 1| 1| 127.0.0.1| 6667| Leader|
| 2|DataRegion|Running|root.sg2| 1| 1| 2| 127.0.0.1| 6668|Follower|
| 2|DataRegion|Running|root.sg2| 1| 1| 3| 127.0.0.1| 6669|Follower|
+--------+----------+-------+--------+-----------+---------+----------+----------+-------+--------+
Total line number = 6
It costs 0.007s
IoTDB> show schema regions of database root.sg1, root.sg2
+--------+------------+-------+--------+-----------+---------+----------+----------+-------+--------+
|RegionId| Type| Status|Database|SeriesSlots|TimeSlots|DataNodeId|RpcAddress|RpcPort| Role|
+--------+------------+-------+--------+-----------+---------+----------+----------+-------+--------+
| 1|SchemaRegion|Running|root.sg1| 1| 0| 1| 127.0.0.1| 6667|Follower|
| 1|SchemaRegion|Running|root.sg1| 1| 0| 2| 127.0.0.1| 6668|Follower|
| 1|SchemaRegion|Running|root.sg1| 1| 0| 3| 127.0.0.1| 6669| Leader|
| 3|SchemaRegion|Running|root.sg2| 1| 0| 1| 127.0.0.1| 6667|Follower|
| 3|SchemaRegion|Running|root.sg2| 1| 0| 2| 127.0.0.1| 6668| Leader|
| 3|SchemaRegion|Running|root.sg2| 1| 0| 3| 127.0.0.1| 6669|Follower|
+--------+------------+-------+--------+-----------+---------+----------+----------+-------+--------+
Total line number = 6
It costs 0.009s
Region 状态定义
Region 继承所在 DataNode 的状态,对 Region 各状态定义如下:
- Running: Region 所在 DataNode 正常运行,Region 可读可写
- Unknown: Region 所在 DataNode 未正常上报心跳,ConfigNode 认为该 Region 不可读写
- Removing: Region 所在 DataNode 正在被移出集群,Region 不可读写
- ReadOnly: Region 所在 DataNode 的磁盘剩余空间低于 disk_warning_threshold(默认 5%),Region 可读,但不能写入,不能同步数据
展示集群槽信息
集群使用分区来管理元数据和数据,分区定义如下:
- 元数据分区:序列槽
- 数据分区:<序列槽,时间分区槽>
可以使用以下 SQL 来查询分区对应信息:
展示数据分区所在的 DataRegion
展示一个数据分区(或一个序列槽下的所有数据分区)所在的 DataRegion:
SHOW DATA REGIONID OF root.sg WHERE SERIESSLOTID=s0 (AND TIMESLOTID=t0)
示例:
IoTDB> show data regionid of root.sg where seriesslotid=5286 and timeslotid=0
+--------+
|RegionId|
+--------+
| 1|
+--------+
Total line number = 1
It costs 0.006s
IoTDB> show data regionid of root.sg where seriesslotid=5286
+--------+
|RegionId|
+--------+
| 1|
| 2|
+--------+
Total line number = 2
It costs 0.006s
展示元数据分区所在的 SchemaRegion
展示一个元数据分区所在的 SchemaRegion:
SHOW SCHEMA REGIONID OF root.sg WHERE SERIESSLOTID=s0
示例:
IoTDB> show schema regionid of root.sg where seriesslotid=5286
+--------+
|RegionId|
+--------+
| 0|
+--------+
Total line number = 1
It costs 0.007s
展示序列槽下的时间槽
展示一个序列槽下的所有时间槽:
SHOW TIMESLOTID OF root.sg WHERE SERIESLOTID=s0 (AND STARTTIME=t1) (AND ENDTIME=t2)
示例:
IoTDB> show timeslotid of root.sg where seriesslotid=5286
+----------+
|TimeSlotId|
+----------+
| 0|
| 1000|
+----------+
Total line number = 1
It costs 0.007s
展示数据库的序列槽
展示一个数据库内,数据,元数据或是所有的序列槽:
SHOW (DATA|SCHEMA)? SERIESSLOTID OF root.sg
示例:
IoTDB> show data seriesslotid of root.sg
+------------+
|SeriesSlotId|
+------------+
| 5286|
+------------+
Total line number = 1
It costs 0.007s
IoTDB> show schema seriesslotid of root.sg
+------------+
|SeriesSlotId|
+------------+
| 5286|
+------------+
Total line number = 1
It costs 0.006s
IoTDB> show seriesslotid of root.sg
+------------+
|SeriesSlotId|
+------------+
| 5286|
+------------+
Total line number = 1
It costs 0.006s