Idea 源码启动 Apache IoTDB 1.0 分布式

背景

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

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

环境

MacOS

JDK8+

启动 ConfigNode 主类

启动 DataNode 主类

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

Apply,运行 DataNode 即可。

Idea 源码启动 Apache IoTDB 1.0 分布式_第1张图片

常见问题

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.(ReflectUtils.java:46)
	... 25 common frames omitted

可以点 Modify options中的 Add VM options

Idea 源码启动 Apache IoTDB 1.0 分布式_第2张图片

然后在出来的 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 分布式_第3张图片

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

Idea 源码启动 Apache IoTDB 1.0 分布式_第4张图片

你可能感兴趣的:(IoTDB,apache,intellij-idea,iotdb)