跟着小百学开源的IoTDB 第一章(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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码

)">
< <上一篇
下一篇>>