第一章 跑起來
- 前言
- 一、IoTDB是什么?
- 二、
- 1.原始碼下載
- 2.配置代碼
- 3.除錯代碼
- 11.9更新
前言
在軟體設計與體系結構的課程中,老師讓我們在課后學習一個開源專案,我覺得老師看的很遠,作為一名計算機的本科生如果只會課內的知識的話是完全不合格的,
關于選題,由于IoTDB的專案負責人王建民教室在我們學院開過一個線上學術報告會,所以我就自然而然頭鐵的選擇了IoTDB這個專案,
我的基礎:完成了大學前兩年的課程,課外的話直接觸過一些課程設計相關的內容,動手能力較差,
一、IoTDB是什么?
Apache IoTDB(物聯網資料庫)是一體化收集、存盤、管理與分析物聯網時序資料的軟體系統, Apache IoTDB 采用輕量式架構,具有高性能和豐富的功能,并與Apache Hadoop、Spark和Flink等進行了深度集成,可以滿足工業物聯網領域的海量資料存盤、高速資料讀取和復雜資料分析需求,
二、
1.原始碼下載
github下載源代碼,我開始想git下來,檔案太大了而且訪問github老是卡頓,導致了各式各樣的出錯資訊,
可以直接下載zip檔案,解壓到idea的作業目錄,

2.配置代碼
cd 到iotdb-master目錄里,執行 mvn clean package -DskipTests

大概過十來分鐘的樣子,成功就會出現如下界面,我之前失敗過一次,重復第二次成功了

然后打開idea,先是出現這樣的界面,看最后一行應該是在resolve什么什么巴拉巴拉的,等待幾分鐘就好了


接下來需要將 thrift/target/generated-sources/thrift 和 antlr/target/generated-sources/antlr4 目錄標記成專案源代碼,讓 IDE 識別,(也有情況是IDEA自動就給你標記了的)
以 IDEA 標記 antlr 目錄為例:

到此為止,代碼中應該就沒有飄紅的了,
有的小伙伴(就如我)看到這里可能不知道idea這些形形色色的檔案圖示代表的是什么意思,我特意去查了一下
3.除錯代碼
首先啟動服務器,主類 IoTDB,debug 模式啟動,

接下來給 TSServiceImpl 類的 executeStatement 打個斷點,Cli 里寫的陳述句都會發送給服務器,而服務器的執行緒就通過這個 rpc 函式處理陳述句了,

接下來啟動命令列工具,主類為 Cli (mac、linux)或 WinCli (windows),啟動之后會報缺少引數,這個時候打開Edit Configuration

把62行注釋上的幾個引數設定到 Program arguments 里,點擊 Apply,OK,
出現下面的界面就算成功了

然后就可以 run 啟動 Cli 了(如果想除錯客戶端,可以 debug 模式啟動),啟動之后可以在 run 的控制臺里輸入一個命令,這里以創建存
儲組為例,輸入完回車,客戶端行程就開始等待服務器回傳結果了,

這時候會自動跳轉到服務器行程的 debugger 里,就可以正式除錯了,
參考
11.9更新
好久沒學了,今天我進去重新下載原始碼編譯發現報了錯

這么大的工程我還沒開始學怎么解決,,,,
還好保存了上個月的工程,一對比發現需要把 thrift-sync/target/generated-sources/thrift 設定為源檔案

然后就可以了,我這里把它標記成了generated source root,它和source root的區別官方說明是這樣的
Source roots (or source folders). By assigning a folder to this category, you tell IntelliJ IDEA that this folder and its subfolders contain source code that should be compiled as part of the build process. In Java modules, the subfolders within the source roots represent your Java package structure. You can assign a package prefix to a source root (e.g.com.mycompany.myapp) instead of creating the corresponding folder structure within that source root (e.g.com/mycompany/myapp). For more information, see Package prefix for Java source roots. In the absence of the package prefix and the subfolders, a source root would represent the default package (an unnamed package). Generated source roots (or generated source folders; in certain views the [generated] text marker is used) are similar to source roots. The difference is that the generated source roots are not suggested as target folders when performing the Move Class refactoring or using the Create Class from Usage quick fix.
我也不是很懂,因為我是小百/ww
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/354763.html
標籤:其他

