IBM DataStage загружает данные в Apache Cassandra создает исключение TransportException - PullRequest
0 голосов
/ 27 июня 2019

Я использую соединитель cassandra DataStage 11.7 для подключения двух узлов, настроенных виртуальными машинами cassandra (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 в DataStage нормально, но когда я пытаюсь вставить данные в таблицу cassandra, выдается следующее исключение:

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, работа «вставка данных» теперь работает нормально. Однако на этот раз задание «чтение данных» выдает ошибку NoSuchMethodError, если я использую драйверы OSS:

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 Ответ

0 голосов
/ 27 июня 2019

Есть вероятность, что проблема в драйверах, которые вы используете.Вы используете драйверы для 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>
...