Windows Server上部署IoTdb 叢集

張善友發表於2023-01-19

本文是參考官方的 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

image

下載msi的一鍵安裝包 microsoft-jdk-17.0.5-windows-x64.msi。 在伺服器上進行安裝

image

修改Windows的登錄檔,將Tcpip的引數MaxUserPort=65534 和 TcpTimedWaitDelay=30

image

首次啟動ConfigNode節點時,確保已清空ConfigNode節點的data/confignode目錄;首次啟動DataNode節點時,確保已清空DataNode節點的data/datanode目錄。

如果整個叢集處在可信環境下,可以關閉機器上的防火牆選項,在windows 防火牆下開通iotdb 規則,我開通了如下埠6667, 10710-10760, 22277, 8777, 40010, 50010,9003.

image

image

在叢集預設配置中,ConfigNode 會佔用埠 10710 和 10720,DataNode 會佔用埠 6667、10730、10740、10750 和 10760, 請確保這些埠未被佔用,或者手動修改配置檔案中的埠配置。


安裝包獲取

開啟官網Download Page :https://iotdb.apache.org/Download/

下載 IoTDB 1.0.0 版本的All in one二進位制檔案。

image

解壓得到 apache-iotdb-1.0.0目錄,目錄有一個注意事項是在路徑上不能有空格。開啟 apache-iotdb-1.0.0,可見以下目錄:

image

image

叢集安裝配置

叢集安裝

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

image

2、ConfigNode 配置

注:務必保證所有埠均未被佔用,否則節點無法啟動,配置檔案為./conf/iotdb-confignode.properties

image

3、DataNode 配置

注:務必保證所有埠均未被佔用,否則節點無法啟動,配置檔案為./conf/iotdb-datanode.properties

image

啟動叢集

本次啟動3個ConfigNode 和 3個DataNode 的叢集,叢集可以提供服務的標準是至少啟動一個 ConfigNode 且啟動 不小於(資料/後設資料)副本個數的 DataNode,要求3叢集公共配置的./conf/iotdb-common.properites必須保持一致。

總體啟動流程分為三步:

  1. 啟動種子 ConfigNode
  2. 增加 ConfigNode(可選)
  3. 增加 DataNode
1、啟動 Seed-ConfigNode

叢集第一個啟動的節點必須是 ConfigNode,第一個啟動的 ConfigNode 必須遵循本小節教程。

第一個啟動的 ConfigNode 是 Seed-ConfigNode,標誌著新叢集的建立。 在啟動 Seed-ConfigNode 前,請開啟通用配置檔案 ./conf/iotdb-common.properties,並檢查如下引數:

image

image

啟動confignode,切換至sbin目錄執行啟動指令碼:

.\sbin\start-confignode.bat

2、增加ConfigNode(2個)

啟動前務必保證 ./conf/iotdb-common.properites 中的所有配置引數與 Seed-ConfigNode 完全一致,配置 ./conf/iotdb-confignode.properties

image

伺服器192.168.67.46

image

伺服器192.168.67.47

image

啟動confignode,切換至sbin目錄執行啟動指令碼:

.\sbin\start-confignode.bat

3、增加DataNode(3個)

在保證ConfigNode啟動成功後才可以增加DataNode,配置 ./conf/iotdb-datanode.properties

可以向叢集中新增任意個 DataNode。 在新增新的 DataNode 前,請先開啟通用配置檔案 ./conf/iotdb-common.properties 並檢查以下引數:

image

接著開啟它的配置檔案 ./conf/iotdb-datanode.properties 並檢查以下引數:

image

伺服器192.168.67.45

image

伺服器192.168.67.46

image

伺服器192.168.67.47

image

啟動,進入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,看到的結果應當如下:

image

所有節點的狀態均為 Running,則說明叢集部署成功。上面有兩個DataNode的狀態是Unknown. 檢查DataNode的啟動日誌沒有問題, 這是由於還有相關的埠沒有在防火牆上開通,需要開通如下埠號: 6667, 10710-10760, 22277, 8777, 40010, 50010,9003.

image

相關文章