Apache IoTDB 系列教程-3:部署運維

今天介紹 IoTDB 的部署運維相關知識,幫助你們玩轉 IoTDB!nginx

正文 1859 字,預計閱讀時間 5 分鐘。
apache

開箱即用服務器

IoTDB 的理念就是系統運維要簡單,要一鍵啓動、開箱即用。就從啓動開始提及吧,須要安裝 jdk8 或者 jdk11,下載發佈版,http://iotdb.apache.org/Download/  ,解壓縮後是這樣的目錄結構:運維

內存在 conf/iotdb-env.sh 裏,配置 MAX_HEAP_SIZE,要去掉前邊的註釋。其餘全部置都在 conf/iotdb-engine.properties 工具

可能須要給腳本加個執行權限,接下來後臺啓動 server測試

nohup sbin/start-server.sh >/dev/null 2>&1 &

目錄結構spa

使用默認配置啓動而且寫數據以後,項目根目錄會生成下面這些文件夾,都在 data 目錄下:命令行

其中主要包括 3 部分,數據文件data/data,系統文件data/system,寫前日誌data/wal。設計

數據目錄:data/data
調試

目錄組織方式爲 順序/亂序數據 -> 存儲組 -> 分區號(目前默認一個分區) -> 數據文件.tsfile及索引文件.resource。

數據文件 TsFile (Timeseries File) 是咱們設計的列存文件格式,主要存儲各個時間序列原始數據,TsFile 有單獨的 API,能夠當作一個獨立的工具使用,就像 Parquet、ORC 同樣。 數據文件能夠配置多目錄,經過 data_dirs 參數配置。

系統目錄:data/system

裏面有幾個重要的文件。

mlog.txt:元數據日誌,採用追加的方式,記錄了全部的元數據操做,包括增刪存儲組、增刪時間序列等。重啓的時候會重作這個文件裏的日誌,遇到錯誤的會跳過。

system.properties:系統屬性,記錄了一些啓動後不可更改的參數,如分區粒度、時間精度等。

tlog.txt:標籤和屬性信息,若是沒建立,這個文件就是空的。

寫前日誌目錄:data/wal

寫入的數據會先記錄寫前日誌,而後寫到內存裏。當內存裏的數據刷盤以後,寫前日誌纔會被清理。當你發現寫了一些數據以後,數據目錄仍是空的,這時候數據就在寫前日誌和內存裏。 

寫前日誌是按照存儲組組織的,一個寫前日誌文件對應一個 TsFile 文件。

若是想強制將內存的數據刷盤,能夠經過 CLI 執行 flush 命令。會持久化內存數據,而且清楚寫前日誌。

系統日誌:data/logs

除了上邊那三個最重要的,還有系統日誌,日誌文件按照日期歸檔,沒有日期的就是今天的。

出現問題能夠來這裏拷日誌發給咱們。

從新來過

測試了一些以後,想從新來過,很方便,把上邊那三個目錄都刪掉,從新啓動就能夠了。仍是整條街最靚的 IoTDB 。

數據遷移

遷移以前,最好用 CLI 控制檯執行一次 flush 命令,持久化內存數據(這樣就沒有寫前日誌了)。重啓一次 IoTDB 也是相似的效果。遷移的IoTDB版本要相同。

介紹幾個場景:

1. 把 A 機器上的 IoTDB 總體遷移到 B 機器上(調試、數據備份等)

能夠把整個data目錄(包括數據目錄、系統目錄)都拷過去,在 B 機器配置好根目錄,啓動 B 機器的 IoTDB 便可。

2. 把 A 機器上的 IoTDB 的部分存儲組的數據遷移到 B 機器上

想遷移數據,元數據必定要遷移。首先把 A 機器的 data/system 目錄拷貝到 B 機器上,接下來把 A 機器數據目錄裏的部分存儲組目錄拷貝到 B 機器,在 B 機器配置好對應的目錄。啓動 B 機器的 IoTDB 便可。

3. 把 A 機器上的 IoTDB 的元數據遷移到 B 機器上,可是不要數據

把 A 機器的 data/system 目錄拷貝到 B 機器的相應位置,啓動 B 機器的 IoTDB 便可。

系統監控

監控系統的內存和CPU仍是很爽的,如今讓你們也爽一下,如下適用於 0.9.2 之後的版本,主要是用 jvisualvm,本地須要有 jdk8。

若是是本機運行 IoTDB,直接在本機命令行輸入 jvisualvm 就能夠鏈接本機的 IoTDB 進程了。

若是要在服務器運行 IoTDB,須要先修改配置文件 conf/iotdb-env.sh,

JMX_LOCAL="false"
JMX_IP="the_real_iotdb_server_ip"  # 填寫實際IoTDB的IP地址

查看 conf/jmx.password,這裏記錄了默認的 JMX 的用戶和密碼,能夠修改。各個用戶的權限在 conf/jmx.access 中。

而後創建遠程鏈接,默認 31999 端口,連上以後就能看到了:

總結

今天介紹了 IoTDB 的目錄結構,從新來過和遷移方式,最後介紹了系統監控方式。歡迎關注、轉發!