美文网首页
427.【数据库】starrocks 安装踩坑

427.【数据库】starrocks 安装踩坑

作者: 七镜 | 来源:发表于2022-09-14 05:01 被阅读0次

    starrocks官网的部署文档还是蛮详细的,可还是有坑要踩的。

    一、jdk 版本问题(请使用 JDK1.8)

    1. 问题详情:

    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. 解决

    • 这个错误是我本地使用的 JDK 版本太高了导致的。我使用的是 jdk17,导致 starrocks 的 fe.conf 配置文件里的 jvm 参数无法使用,导致报错,于是我就把报错的参数给删了;
    • 删完之后,确实能用 jdk17 启动了,但带出了上面的问题。
    • 解决方案就是使用 starrocks 官网部署文档里推荐的 jdk1.8 版本。经过测试,使用 jdk1.8 版本之后,报错就无了。

    二、缺少依赖库的问题(请配置LD_LIBRARY_PATH环境变量)

    1. 问题详情:

    [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脚本也还是挺坑的:脚本执行完,服务没起来,日志里不报错。
    研究脚本发现,实际上这个脚本调用的是一个 starrocks_be可执行文件,路径在 /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文件中,添加如下信息(具体路径请根据上面的一条命令的结果调整):

    export LD_LIBRARY_PATH=${JAVA_HOME}/jre/lib/amd64/server
    
    source ~/.bashrc
    

    三、avx2 不支持的问题

    1. 问题详情

    [root@ss-2 lib]# ./starrocks_be 
    Illegal instruction
    

    这个表示服务器环境不支持avx2指令集。可通过 cat /proc/cpuinfo|grep avx2 命令验证,如果没有输出,表示不支持avx2指令集。

    解决:

    找一台支持 avx2 指令集的服务器安装。

    相关文章

      网友评论

          本文标题:427.【数据库】starrocks 安装踩坑

          本文链接:https://www.haomeiwen.com/subject/zawhortx.html