本文是參考官方的 IoTDB 叢集版(1.0.0)的安裝及啟動教程:https://iotdb.apache.org/zh/UserGuide/V1.0.x/Cluster/Cluster-Setup.html ,在Windows Server 2019上部署叢集的實踐記錄。
前置檢查
使用微軟釋出的OpenJDK 17 執行環境,並配置好 JAVA_HOME 環境變數。從微軟官方網站下載 https://learn.microsoft.com/zh-cn/java/openjdk/download
下載msi的一鍵安裝包 microsoft-jdk-17.0.5-windows-x64.msi。 在伺服器上進行安裝
修改Windows的登錄檔,將Tcpip的引數MaxUserPort=65534 和 TcpTimedWaitDelay=30
首次啟動ConfigNode節點時,確保已清空ConfigNode節點的data/confignode目錄;首次啟動DataNode節點時,確保已清空DataNode節點的data/datanode目錄。
如果整個叢集處在可信環境下,可以關閉機器上的防火牆選項,在windows 防火牆下開通iotdb 規則,我開通了如下埠6667, 10710-10760, 22277, 8777, 40010, 50010,9003.
。
在叢集預設配置中,ConfigNode 會佔用埠 10710 和 10720,DataNode 會佔用埠 6667、10730、10740、10750 和 10760, 請確保這些埠未被佔用,或者手動修改配置檔案中的埠配置。
安裝包獲取
開啟官網Download Page :https://iotdb.apache.org/Download/
下載 IoTDB 1.0.0 版本的All in one二進位制檔案。
解壓得到 apache-iotdb-1.0.0目錄,目錄有一個注意事項是在路徑上不能有空格。開啟 apache-iotdb-1.0.0,可見以下目錄:
叢集安裝配置
叢集安裝
IoTdb 包含 ConfigNode 和 DataNode, 請將安裝包部署於你目標叢集的所有機器上,推薦將安裝包部署於所有伺服器的相同目錄下。 本次叢集共3臺機器,ip分別為:192.168.67.45,192.168.67.46,192.168.67.47,其中192.168.67.45 作為seed-confignode.
叢集配置
接下來需要修改每個伺服器上的配置檔案,登入伺服器, 並將工作路徑切換至 apache-iotdb-1.0.0
, 配置檔案在 ./conf
目錄內,以下所有配置項在叢集啟動後不可修改。
- 對於所有部署 ConfigNode 的伺服器,需要修改通用配置ConfigNode 配置
- 對於所有部署 DataNode 的伺服器,需要修改通用配置和 DataNode 配置
1、通用配置
注:務必保證所有節點的通用配置完全一致,否則節點無法啟動,通用配置為./conf/iotdb-common.properties,本次叢集cluster_name=TrueloveCluster。
2、ConfigNode 配置
注:務必保證所有埠均未被佔用,否則節點無法啟動,配置檔案為./conf/iotdb-confignode.properties
3、DataNode 配置
注:務必保證所有埠均未被佔用,否則節點無法啟動,配置檔案為./conf/iotdb-datanode.properties
啟動叢集
本次啟動3個ConfigNode 和 3個DataNode 的叢集,叢集可以提供服務的標準是至少啟動一個 ConfigNode 且啟動 不小於(資料/後設資料)副本個數的 DataNode,要求3叢集公共配置的./conf/iotdb-common.properites必須保持一致。
總體啟動流程分為三步:
- 啟動種子 ConfigNode
- 增加 ConfigNode(可選)
- 增加 DataNode
1、啟動 Seed-ConfigNode
叢集第一個啟動的節點必須是 ConfigNode,第一個啟動的 ConfigNode 必須遵循本小節教程。
第一個啟動的 ConfigNode 是 Seed-ConfigNode,標誌著新叢集的建立。 在啟動 Seed-ConfigNode 前,請開啟通用配置檔案 ./conf/iotdb-common.properties,並檢查如下引數:
啟動confignode,切換至sbin目錄執行啟動指令碼:
.\sbin\start-confignode.bat
2、增加ConfigNode(2個)
啟動前務必保證 ./conf/iotdb-common.properites 中的所有配置引數與 Seed-ConfigNode 完全一致,配置 ./conf/iotdb-confignode.properties
伺服器192.168.67.46
伺服器192.168.67.47
啟動confignode,切換至sbin目錄執行啟動指令碼:
.\sbin\start-confignode.bat
3、增加DataNode(3個)
在保證ConfigNode啟動成功後才可以增加DataNode,配置 ./conf/iotdb-datanode.properties
可以向叢集中新增任意個 DataNode。 在新增新的 DataNode 前,請先開啟通用配置檔案 ./conf/iotdb-common.properties 並檢查以下引數:
接著開啟它的配置檔案 ./conf/iotdb-datanode.properties 並檢查以下引數:
伺服器192.168.67.45
伺服器192.168.67.46
伺服器192.168.67.47
啟動,進入sbin目錄執行啟動指令碼
.\sbin\start-datanode.bat
驗證叢集
以上是在3臺伺服器上啟動的3C3D(3個ConfigNode 和 3個DataNode)叢集為例, 這裡假設3個ConfigNode的IP地址依次為192.168.67.45,192.168.67.46,192.168.67.47,且3個ConfigNode啟動時均使用了預設的埠10710與10720; 3個DataNode的IP地址依次為192.168.67.45,192.168.67.46,192.168.67.47,且3個DataNode啟動時均使用了預設的埠6667、10730、10740、10750與10760。
在 Cli 執行 show cluster details
,看到的結果應當如下:
所有節點的狀態均為 Running,則說明叢集部署成功。上面有兩個DataNode的狀態是Unknown. 檢查DataNode的啟動日誌沒有問題, 這是由於還有相關的埠沒有在防火牆上開通,需要開通如下埠號: 6667, 10710-10760, 22277, 8777, 40010, 50010,9003.