AlexRomeo
发布于 2024-06-03 / 80 阅读
1
0

MDX-for-Kylin驱动bug

前言

在部署mdx-for-kylin的过程中,遇到了mdx-for-kylin的部分错误,如mysql的connector驱动包、kylin-jdbc驱动包的问题。

mdx软件的获取地址为:

https://github.com/Kyligence/mdx-kylin/issues/1

软件名称:mdx-for-kylin-1.0.0-beta.tar.gz

image-20240603160124597

Bug原因

在mdx-for-kylin根目录下的semantic-mdx中缺少lib目录及相关的驱动jar包,正常的目录结构如下。

# tree -d mdx-for-kylin-1.0.0-beta
mdx-for-kylin-1.0.0-beta
├── bin
├── conf
├── logs
├── semantic-mdx
│   ├── diag_dump
│   ├── lib
│   ├── logs
│   ├── public
│   │   └── WEB-INF
│   │       └── schema
│   └── scripts
└── work
    └── Tomcat
        └── localhost
            └── ROOT
15 directories

可以正常的目录结构下是有lib目录的,在目录下应该有两个jar包

kylin-jdbc-4.0.0-SNAPSHOT.jar  
mysql-connector-java-5.1.48.jar

Bug处理

mysql驱动jar包的问题很好处理,并且jar包也比较好找,文档中不再阐述,如有问题,可以评论中讨论,空闲的时候第一时间回复。

下面的错误是因为缺少kylin-jdbc-4.0.0-SNAPSHOT.jar包导致

[MDX-02020015] [PARSE_ERROR]mondrian.olap.MondrianException: Internal error: Error while creating SQL connection: Jdbc=jdbc:kylin://localhost:7070/learn_kylin; JdbcUser=ADMIN
Internal error: Error while creating SQL connection: Jdbc=jdbc:kylin://localhost:7070/learn_kylin; JdbcUser=ADMIN
No suitable driver found for jdbc:kylin://localhost:7070/learn_kylin

io.kylin.mdx.insight.common.SemanticException: [PARSE_ERROR]mondrian.olap.MondrianException: Internal error: Error while creating SQL connection: Jdbc=jdbc:kylin://localhost:7070/learn_kylin; JdbcUser=ADMIN
Internal error: Error while creating SQL connection: Jdbc=jdbc:kylin://localhost:7070/learn_kylin; JdbcUser=ADMIN
No suitable driver found for jdbc:kylin://localhost:7070/learn_kylin

    at io.kylin.mdx.insight.server.service.BatchDatasetService.checkConnectDataset(BatchDatasetService.java:707)
    at io.kylin.mdx.insight.server.service.BatchDatasetService$$FastClassBySpringCGLIB$$cc138b09.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:367)

    ...

    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)

image-20240603151956215

解决方法:

将jar包放入到容器的”/home/admin/mdx-for-kylin-1.0.0-beta/semantic-mdx/lib"路径中,重启容器即可解决。

image-20240603152225906

[root@5db40678182a bin]# pwd
/home/admin/mdx-for-kylin-1.0.0-beta/bin
[root@5db40678182a bin]# ./mdx.sh restart
Working directory: /home/admin/mdx-for-kylin-1.0.0-beta
MDX context path: /
Stop Kylin MDX...
.
Semantic service has been stopped, pid=7843.
Kylin MDX is now stopped.
Start Kylin MDX...
MDX_HOME=/home/admin/mdx-for-kylin-1.0.0-beta
MDX_CONF=/home/admin/mdx-for-kylin-1.0.0-beta/conf
JAVA_HOME has been set,it's /home/admin/jdk1.8.0_141
JAVA=/home/admin/jdk1.8.0_141/bin/java
Use database: mysql
JVM memory minimum set as : -Xms2g
JVM memory maximum set as : -Xmx2g
Use /home/admin/mdx-for-kylin-1.0.0-beta/conf/log4j2.xml 
Time zone is specified as: GMT+8:00
Semantic service is starting at port 7080, please check the log at logs/semantic.log.
...........
Kylin MDX is started. Now you can visit http://0.0.0.0:7080/ to explore.
Starting syncing metadata...
Successfully starting syncing metadata...

重启后再次操作数据集时需要注意,之前创建的时候虽然失败了,但数据集依然会被创建,回到“数据集”菜单,点击编辑,一直下一步即可出现下图中的成功信息。

image-20240603153315409


评论