0
点赞
收藏
分享

微信扫一扫

Idea 源码启动 Apache IoTDB 1.0 分布式


背景

Apache IoTDB 1.0 版本实现了新的分布式架构。今天介绍一下如何通过源码启动 IoTDB 1.0 。

IoTDB 分布式里有两个主要概念,ConfigNode 和 DataNode,下文介绍启动 1C1D。

环境

MacOS

JDK8+

启动 ConfigNode 主类

Idea 源码启动 Apache IoTDB 1.0 分布式_java

启动 DataNode 主类

在 ​​Edit Configurations...​​​中的 ​​Program arguments​​​里输入 ​​-s​

Idea 源码启动 Apache IoTDB 1.0 分布式_iotdb_02

Apply,运行 DataNode 即可。

Idea 源码启动 Apache IoTDB 1.0 分布式_apache_03

常见问题

jdk16 及以上会遇到 InaccessibleObjectException:

Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @1ca3b418
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:200)
at java.base/java.lang.reflect.Method.setAccessible(Method.java:194)
at net.sf.cglib.core.ReflectUtils$2.run(ReflectUtils.java:56)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at net.sf.cglib.core.ReflectUtils.<clinit>(ReflectUtils.java:46)
... 25 common frames omitted

可以点 ​​Modify options​​​中的 ​​Add VM options​

Idea 源码启动 Apache IoTDB 1.0 分布式_intellij-idea_04

然后在出来的 ​​VM options​​中添加如下内容

--add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED

Apply,启动即可。

Idea 源码启动 Apache IoTDB 1.0 分布式_apache_05

给 DataNode 添加 ​​VM options​​后是这个效果。

Idea 源码启动 Apache IoTDB 1.0 分布式_分布式架构_06


举报

相关推荐

0 条评论