当前位置: 首页 > 知识库问答 >
问题:

IBM DataStage将数据加载到Apache cassandra抛出TransportException

申屠浩歌
2023-03-14

我使用DataStage 11.7 cassandra connector连接配置了cassandra VMs的2个节点(192.168.3.240&192.168.3.241)。

我的apache cassandra版本是3.11.3,我使用的是datastax驱动程序:dse-java-driver-core-1.8.1.jar和dse-java-driver-extras-1.8.1.jar。

Cassandra_Connector_0,1: com.datastax.driver.core.exceptions.TransportException: [/192.168.3.241:9042] Connection has been closed
at com.datastax.driver.core.exceptions.TransportException.copy (TransportException.java: 29)
at com.datastax.driver.core.exceptions.TransportException.copy (TransportException.java: 15)
at com.datastax.driver.core.DriverThrowables.propagateCause (DriverThrowables.java: 26)
at com.datastax.driver.core.AbstractSession.prepare (AbstractSession.java: 77)
at com.ibm.is.cc.cassandra.engine.CassandraSession.prepareInsertStatement (CassandraSession.java: 161)
at com.ibm.is.cc.cassandra.engine.InsertMutator.<init> (InsertMutator.java: 25)
at com.ibm.is.cc.cassandra.config.MutationType$1.newMutator (MutationType.java: 21)
at com.ibm.is.cc.cassandra.engine.CassandraSession.getMutator (CassandraSession.java: 156)
at com.ibm.is.cc.cassandra.runtime.CassandraConsumer.prepareColumnExtractor (CassandraConsumer.java: 92)
at com.ibm.is.cc.cassandra.runtime.CassandraConsumer.prepare (CassandraConsumer.java: 62)

更新1:现在我正在使用OSS驱动程序,“插入数据”工作现在很好。但是,这一次,如果我使用OSS驱动程序,“读取数据”作业将抛出NoSuchMethodError:

Cassandra_Connector_0,1: com.ascential.e2.common.CC_Exception: "Connector encountered an exception: java.lang.NoSuchMethodError: com/datastax/driver/core/SimpleStatement.setRoutingToken(Lcom/datastax/driver/core/Token;)Lcom/datastax/driver/core/RegularStatement; (loaded from file:/home/dsadm/cassandra-client-write/cassandra-driver-core-3.7.1.jar by com.ibm.is.cc.cassandra.wrapper.ChildFirstURLClassLoader@493caf75) called from class com.ibm.is.cc.cassandra.engine.CassandraSession (loaded from file:/opt/IBM/InformationServer/Server/DSEngine/../DSComponents/bin/cassandra/CassandraConnectorCore.jar by com.ibm.is.cc.cassandra.wrapper.ChildFirstURLClassLoader@493caf75).
    at com.ibm.is.cc.cassandra.engine.CassandraSession.executeSelect(CassandraSession.java:126)
    at com.ibm.is.cc.cassandra.runtime.CassandraAdapter.runProducers(CassandraAdapter.java:106)
    at com.ibm.is.cc.cassandra.runtime.CassandraAdapter.run(CassandraAdapter.java:94)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:90)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
    at java.lang.reflect.Method.invoke(Method.java:508)
    at com.ibm.is.cc.cassandra.wrapper.Delegator.invokeMethod(Delegator.java:40)
    at com.ibm.is.cc.cassandra.wrapper.Delegator.access$100(Delegator.java:16)
    at com.ibm.is.cc.cassandra.wrapper.Delegator$MethodWrapper.invoke(Delegator.java:56)
    at com.ibm.is.cc.cassandra.wrapper.CassandraAdapterWrapper.run(CassandraAdapterWrapper.java:169)
"
at com.ibm.is.cc.cassandra.resources.CC_CassandraErrorCode.createException (CC_CassandraErrorCode.java: 124)
at com.ibm.is.cc.cassandra.resources.CC_CassandraErrorCode.newWrapperFailureException (CC_CassandraErrorCode.java: 42)
at com.ibm.is.cc.cassandra.wrapper.Delegator.invokeMethod (Delegator.java: 44)
at com.ibm.is.cc.cassandra.wrapper.Delegator.access$100 (Delegator.java: 16)
at com.ibm.is.cc.cassandra.wrapper.Delegator$MethodWrapper.invoke (Delegator.java: 56)
at com.ibm.is.cc.cassandra.wrapper.CassandraAdapterWrapper.run (CassandraAdapterWrapper.java: 169)

共有1个答案

谢典
2023-03-14

问题很可能出在您正在使用的驱动程序上。对于DSE使用驱动程序,而对于开源的Cassandra则需要使用OSS驱动程序,其Maven坐标如下:

<dependency>
  <groupId>com.datastax.cassandra</groupId>
  <artifactId>cassandra-driver-core</artifactId>
  <version>3.7.1</version>
</dependency>
<dependency>
  <groupId>com.datastax.cassandra</groupId>
  <artifactId>cassandra-driver-extras</artifactId>
  <version>3.7.1</version>
</dependency>
 类似资料:
  • 问题内容: 我正在尝试通过一种称为的方法设置项目,到目前为止还可以。但是后来我从中创建了一个arrayList,但我不知何故找不到将这些信息存储到JTable中的方法。问题是我找不到设置固定行数的方法 这是我的代码: 上课开始联赛: 足球俱乐部课程: SportsClub课程(摘要): 最后是LeagueManager,它是一个接口: 有人能帮帮我吗?我已经尝试了好几天。谢谢。 问题答案: “问题

  • 我正在使用hazelcast IMap存储我的应用程序数据。 我面临着一个小问题。 问题说明:- 当我启动spring-boot应用程序时,我正在将数据库表数据加载到hazelcast中。 示例:- 但是当我获取相同的数据时,我得到的顺序不同。 那么有没有办法按照插入的顺序获取数据呢?

  • 我试图从一个名为的方法中设置项目,到目前为止还不错。但后来我从它创建了一个arrayList,不知何故,我找不到将这些信息存储到JTable中的方法。问题是我找不到设置固定行数的方法 下面是我的代码:

  • 我无法将数据加载到表中。我有类,其名称为、等。我想将、插入到TextField上的表播放器中。 我正在执行与下面所示完全相同的操作:http://docs.oracle.com/javase/8/javafx/user-interface-tutorial/table-view.htm#cjagaaee 但我不能让它起作用。有人能帮我吗?

  • 问题内容: 我刚刚开始尝试使用AWS SageMaker,并希望将数据从S3存储桶加载到SageMaker python jupyter笔记本中的pandas数据框中进行分析。 我可以使用boto来获取S3中的数据,但我想知道SageMaker框架中是否存在更优雅的方法来在python代码中执行此操作? 在此先感谢您的任何建议。 问题答案: 如果您在这里看看,似乎可以在 InputDataConf

  • 我需要将存在于Web链接上的数据上传到hdfs,例如“博客”。 现在,我正在寻找实现这一目标的选项,可以找到以下链接: http://blog . cloud era . com/blog/2012/09/analyzing-Twitter-data-with-Hadoop/ 但是通过水槽文档阅读,我不清楚如何设置水槽源来指向博客内容所在的网站。 根据我对 fluem 文档的理解,需要有网络服务器