starrocks官網(wǎng)的部署文檔還是蠻詳細(xì)的泽台,可還是有坑要踩的杉女。
一缚甩、jdk 版本問(wèn)題(請(qǐng)使用 JDK1.8)
1. 問(wèn)題詳情:
2022-09-13 07:34:00,444 ERROR (leaderCheckpointer|65) [Checkpoint.runAfterCatalogReady():106] Exception when generate new image file
java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock java.util.concurrent.locks.ReentrantReadWriteLock.readerLock accessible: module java.base does not "opens java.util.concurrent.locks" to unnamed module @3bf44630
at java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354) ~[?:?]
at java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) ~[?:?]
at java.lang.reflect.Field.checkCanSetAccessible(Field.java:178) ~[?:?]
at java.lang.reflect.Field.setAccessible(Field.java:172) ~[?:?]
at com.google.gson.internal.reflect.UnsafeReflectionAccessor.makeAccessible(UnsafeReflectionAccessor.java:44) ~[spark-dpp-1.0.0.jar:?]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:159) ~[spark-dpp-1.0.0.jar:?]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:102) ~[spark-dpp-1.0.0.jar:?]
at com.google.gson.Gson.getDelegateAdapter(Gson.java:541) ~[spark-dpp-1.0.0.jar:?]
at com.starrocks.persist.gson.GsonUtils$PostProcessTypeAdapterFactory.create(GsonUtils.java:428) ~[starrocks-fe.jar:?]
at com.google.gson.Gson.getAdapter(Gson.java:458) ~[spark-dpp-1.0.0.jar:?]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:117) ~[spark-dpp-1.0.0.jar:?]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:166) ~[spark-dpp-1.0.0.jar:?]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:102) ~[spark-dpp-1.0.0.jar:?]
at com.google.gson.Gson.getDelegateAdapter(Gson.java:541) ~[spark-dpp-1.0.0.jar:?]
at com.starrocks.persist.gson.GsonUtils$PostProcessTypeAdapterFactory.create(GsonUtils.java:428) ~[starrocks-fe.jar:?]
at com.google.gson.Gson.getAdapter(Gson.java:458) ~[spark-dpp-1.0.0.jar:?]
at com.google.gson.Gson.toJson(Gson.java:696) ~[spark-dpp-1.0.0.jar:?]
at com.google.gson.Gson.toJson(Gson.java:683) ~[spark-dpp-1.0.0.jar:?]
at com.google.gson.Gson.toJson(Gson.java:638) ~[spark-dpp-1.0.0.jar:?]
at com.google.gson.Gson.toJson(Gson.java:618) ~[spark-dpp-1.0.0.jar:?]
at com.starrocks.catalog.ResourceMgr.write(ResourceMgr.java:238) ~[starrocks-fe.jar:?]
at com.starrocks.catalog.ResourceMgr.saveResources(ResourceMgr.java:269) ~[starrocks-fe.jar:?]
at com.starrocks.server.GlobalStateMgr.saveImage(GlobalStateMgr.java:1367) ~[starrocks-fe.jar:?]
at com.starrocks.server.GlobalStateMgr.saveImage(GlobalStateMgr.java:1335) ~[starrocks-fe.jar:?]
at com.starrocks.master.Checkpoint.runAfterCatalogReady(Checkpoint.java:97) [starrocks-fe.jar:?]
at com.starrocks.common.util.MasterDaemon.runOneCycle(MasterDaemon.java:61) [starrocks-fe.jar:?]
at com.starrocks.common.util.Daemon.run(Daemon.java:115) [starrocks-fe.jar:?]
2. 解決
- 這個(gè)錯(cuò)誤是我本地使用的 JDK 版本太高了導(dǎo)致的荧嵌。我使用的是 jdk17口糕,導(dǎo)致 starrocks 的
fe.conf
配置文件里的 jvm 參數(shù)無(wú)法使用托呕,導(dǎo)致報(bào)錯(cuò)充甚,于是我就把報(bào)錯(cuò)的參數(shù)給刪了演熟; - 刪完之后鞭执,確實(shí)能用 jdk17 啟動(dòng)了,但帶出了上面的問(wèn)題芒粹。
- 解決方案就是使用 starrocks 官網(wǎng)部署文檔里推薦的 jdk1.8 版本兄纺。經(jīng)過(guò)測(cè)試,使用 jdk1.8 版本之后化漆,報(bào)錯(cuò)就無(wú)了估脆。
二、缺少依賴庫(kù)的問(wèn)題(請(qǐng)配置LD_LIBRARY_PATH
環(huán)境變量)
1. 問(wèn)題詳情:
[root@ss-2 lib]# ./starrocks_be
./starrocks_be: error while loading shared libraries: libjvm.so: cannot open shared object file: No such file or directory
starrocks_be.sh
腳本也還是挺坑的:腳本執(zhí)行完座云,服務(wù)沒(méi)起來(lái)疙赠,日志里不報(bào)錯(cuò)。
研究腳本發(fā)現(xiàn)疙教,實(shí)際上這個(gè)腳本調(diào)用的是一個(gè) starrocks_be
可執(zhí)行文件棺聊,路徑在 /path_your_starrocks_home/be/lib
。
2. 解決:
查找一下本地的 libjvm.so
在什么地方:
[root@ss-2 lib]# find / -name libjvm.so
/root/StarRocks-2.3.2/be/lib/jvm/amd64/server/libjvm.so
/usr/local/java/jre/jre/lib/amd64/server/libjvm.so
/home/centos/jre/lib/server/libjvm.so
找到之后在 ~/.bashrc
文件中贞谓,添加如下信息(具體路徑請(qǐng)根據(jù)上面的一條命令的結(jié)果調(diào)整):
export LD_LIBRARY_PATH=${JAVA_HOME}/jre/lib/amd64/server
source ~/.bashrc
三限佩、avx2 不支持的問(wèn)題
1. 問(wèn)題詳情
[root@ss-2 lib]# ./starrocks_be
Illegal instruction
這個(gè)表示服務(wù)器環(huán)境不支持avx2指令集÷阆遥可通過(guò) cat /proc/cpuinfo|grep avx2
命令驗(yàn)證祟同,如果沒(méi)有輸出,表示不支持avx2指令集理疙。
解決:
找一臺(tái)支持 avx2 指令集的服務(wù)器安裝晕城。