Cassandra datastax 驱动程序的 Pentaho 问题
Posted
技术标签:
【中文标题】Cassandra datastax 驱动程序的 Pentaho 问题【英文标题】:Pentaho problem with Cassandra datastax driver 【发布时间】:2019-08-01 21:00:22 【问题描述】:我正在使用 Pentaho 8.1 CE
当我在 Pentaho 勺子中使用超过 1 个 Cassandra 输入时,大多数情况下(大约 4 次中的 3 次),我们会收到以下错误:
java.lang.NoClassDefFoundError: io/netty/util/internal/TypeParameterMatcher
2019/02/22 14:46:53 - Get cancel tickets.0 - at java.lang.Class.forName0(Native Method)
2019/02/22 14:46:53 - Get cancel tickets.0 - at java.lang.Class.forName(Class.java:348)
2019/02/22 14:46:53 - Get cancel tickets.0 - at io.netty.util.internal.JavassistTypeParameterMatcherGenerator.generate(JavassistTypeParameterMatcherGenerator.java:62)
2019/02/22 14:46:53 - Get cancel tickets.0 - at io.netty.util.internal.JavassistTypeParameterMatcherGenerator.generate(JavassistTypeParameterMatcherGenerator.java:54)
2019/02/22 14:46:53 - Get cancel tickets.0 - at io.netty.util.internal.TypeParameterMatcher.get(TypeParameterMatcher.java:42)
2019/02/22 14:46:53 - Get cancel tickets.0 - at io.netty.util.internal.TypeParameterMatcher.find(TypeParameterMatcher.java:78)
2019/02/22 14:46:53 - Get cancel tickets.0 - at io.netty.channel.SimpleChannelInboundHandler.<init>(SimpleChannelInboundHandler.java:67)
2019/02/22 14:46:53 - Get cancel tickets.0 - at io.netty.channel.SimpleChannelInboundHandler.<init>(SimpleChannelInboundHandler.java:57)
2019/02/22 14:46:53 - Get cancel tickets.0 - at com.datastax.driver.core.Connection$Dispatcher.<init>(Connection.java:1017)
2019/02/22 14:46:53 - Get cancel tickets.0 - at com.datastax.driver.core.Connection.<init>(Connection.java:116)
2019/02/22 14:46:53 - Get cancel tickets.0 - at com.datastax.driver.core.Connection.<init>(Connection.java:128)
2019/02/22 14:46:53 - Get cancel tickets.0 - at com.datastax.driver.core.Connection$Factory.open(Connection.java:806)
2019/02/22 14:46:53 - Get cancel tickets.0 - at com.datastax.driver.core.ControlConnection.tryConnect(ControlConnection.java:252)
2019/02/22 14:46:53 - Get cancel tickets.0 - at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:201)
2019/02/22 14:46:53 - Get cancel tickets.0 - at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:79)
2019/02/22 14:46:53 - Get cancel tickets.0 - at com.datastax.driver.core.Cluster$Manager.negotiateProtocolVersionAndConnect(Cluster.java:1619)
2019/02/22 14:46:53 - Get cancel tickets.0 - at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1537)
2019/02/22 14:46:53 - Get cancel tickets.0 - at com.datastax.driver.core.Cluster.getMetadata(Cluster.java:399)
2019/02/22 14:46:53 - Get cancel tickets.0 - at org.pentaho.cassandra.driver.datastax.DriverConnection.getKeyspace(DriverConnection.java:152)
2019/02/22 14:46:53 - Get cancel tickets.0 - at org.pentaho.di.trans.steps.cassandrainput.CassandraInput.processRow(CassandraInput.java:156)
2019/02/22 14:46:53 - Get cancel tickets.0 - at org.pentaho.di.trans.step.RunThread.run(RunThread.java:62)
2019/02/22 14:46:53 - Get cancel tickets.0 - at java.lang.Thread.run(Thread.java:748)
2019/02/22 14:46:53 - Get cancel tickets.0 - Caused by: java.lang.ClassNotFoundException: io.netty.util.internal.TypeParameterMatcher
2019/02/22 14:46:53 - Get cancel tickets.0 - at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
2019/02/22 14:46:53 - Get cancel tickets.0 - at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
2019/02/22 14:46:53 - Get cancel tickets.0 - at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
2019/02/22 14:46:53 - Get cancel tickets.0 - ... 22 more
有没有人遇到过这样的事情? 我们正在几个工作站(包括 Windows 和 Mac 平台)上实现此功能。
【问题讨论】:
【参考方案1】:我在 pentaho-cassandra-plugin 中将 netty
版本更新为 4.0.56.Final
并解决了这个问题。我用pdi-ce-9.0
对此进行了测试,并且使用pdi-ce-8.1
工作正常(效果更好,但有时会出现问题)。
【讨论】:
【参考方案2】:您可以在 Pentaho 中更改 Cassandra 库:
PATH:$Pentaho/design-tools/data-integration-8.1/plugins/pentaho-cassandra-plugin/lib
修复错误后,我已将我机器上的netty*
版本4.0.44
更新为4.1.25
。
【讨论】:
我面临与 Pentaho 中 cassandra 输出组件驱动程序相关的错误。 2020/03/31 17:36:53 - Cassandra output.0 - 错误(版本 9.0.0.0-423,由 buildguy 从 2020-01-31 04.53.04 构建 9.0.0.0-423):类型类的值 0 [ B 不对应于任何 CQL3 类型 com.datastax.driver.core.exceptions.InvalidTypeException:类型类的值 0 [B 不对应于任何 CQL3 类型 com.datastax.driver.core.exceptions.CodecNotFoundException:找不到编解码器请求的操作:[ANY [B]【参考方案3】:您好,感谢您的所有努力。 我已经尝试了你的所有提示,但它们都不起作用。
最后,我们将 Pentaho CE 升级到了最新版本,它解决了这个问题。
再次感谢!
【讨论】:
以上是关于Cassandra datastax 驱动程序的 Pentaho 问题的主要内容,如果未能解决你的问题,请参考以下文章
Datastax Cassandra Java 驱动程序 @QueryParameters fetchSize
我无法使用 DataStax Python 驱动程序连接到 Cassandra
从 c#datastax 驱动程序关闭 cassandra 集群时出错
cassandra 数据库 - 获取时间高于 Netflix Astyanax 驱动程序而不是 datastax 驱动程序