一、IoTDB分布式架構概述
分布式系統由一組獨立的計算機組成,通過網絡通信,對外表現為一個統一的整體。IoTDB的原生分布式架構將服務分為兩個核心部分:
- ?ConfigNode(CN)?:管理節點,負責管理分區表、節點信息以及整個集群的負載均衡等功能。
- ?DataNode(DN)?:數據節點,包含五個主要模塊:查詢引擎、存儲引擎、元數據引擎、共識引擎和流處理引擎。
一個典型的IoTDB集群配置為3C3D(3個CN,3個DN),但在實際應用中,CN通常配置為1個或3個,DN則根據業務需求至少配置1個(目前最高有3C100D的線上環境)。
二、IoTDB集群運維指南
. 部署
- ?DN部署?:由于DN管理數據需要大量資源,推薦將多個DN部署在不同節點上。
- ?CN部署?:CN管理集群內的節點,資源需求較少,可部署在與DN相同的節點上或單獨部署。以CD集群為例,建議部署在臺物理機上,每臺機器部署CD。
- ?hosts文件修改?:在所有物理機上修改hosts文件,以解析集群內各節點的IP地址和主機名。
. 啟動
- ?啟動順序?:先啟動CN,后啟動DN。首次啟動時,需配置cn_seed_config_node和dn_seed_config_node,確保第一個CN啟動成功后,再啟動其他CN和DN。
- ?配置文件修改?:在/data/iotdb/conf目錄下修改相應的配置文件。
- ?啟動命令?:使用sbin目錄下的start-confignode.sh和start-datanode.sh腳本啟動CN和DN。
- ?集群狀態校驗?:使用Cli連接任意節點,執行show cluster命令查看集群狀態。
. 停止
- ?停止順序?:先停止客戶端連接,再停止DN,最后停止CN。
- ?停止命令?:使用sbin目錄下的stop-datanode.sh和stop-confignode.sh腳本停止DN和CN。
. 升級
- ?停止集群?:先執行集群停止操作。
- ?更換目錄?:刪除舊版本的lib和sbin目錄,將新版本的目錄移動至IoTDB根目錄下。
- ?啟動集群?:執行集群啟動操作。
. 擴容
- ?擴容方式?:下載IoTDB安裝包,解壓,修改配置,啟動新節點。新節點必須為空節點,且cluster_name、cn_seed_config_node和dn_seed_config_node的配置需與現有集群一致。
- ?驗證擴容?:使用Cli執行show cluster命令驗證擴容結果。
. 縮容
- ?移除節點?:使用sbin目錄下的remove-datanode.sh和remove-confignode.sh腳本移除已啟動的DN和CN。
- ?驗證縮容?:使用Cli執行show cluster命令驗證縮容結果。
. 清理
- ?停止集群?:先執行集群停止操作。
- ?清理數據?:使用sbin目錄下的destroy-all.sh、destroy-confignode.sh或destroy-datanode.sh腳本清理CN和DN的數據。
- ?重新啟動?:執行集群啟動操作,獲取一個“嶄新”的IoTDB。