kafka-cassandra-sink在cassandra中插入json数据时出错

时间:2018-11-13 10:36:28

标签: apache-kafka cassandra-3.0 apache-kafka-connect

我在kafka-cassandra-sink上使用kafka connect 1.0.0和kafka 1.0版创建了一个测试主题IndiaDataEngineerTest和一个结构为

的cassandra表indiatest
IndiaTest (
    datetime timeuuid, 
    city text, 
    phone_number text,
    PRIMARY KEY (datetime,phone_number)
);

在我的主题中,生产者将数据写为json,如下所示:

{"datetime":"c8ba2390-4783-11e8-af08-d9271f3c3d48","city":"Santa Monica","phone_number":"+131000000001"}
{"datetime":"42485b20-44f3-11e8-b543-77b9a2d3bc92","city":"Anaheim","phone_number":"+131000000002"}
{"datetime":"53b5c980-41c7-11e8-8689-7983010e6437","city":"Not Found","phone_number":"+131000000004"}
{"datetime":"d43b3860-419a-11e8-a2eb-59f9c7b79f07","city":"Anaheim","phone_number":"+131000000003"}

我是tryig,使用下面的接收器道具将上述数据写入cassandra表中:

{

"name": "cassandra-sink",
"config": {
"tasks.max":"1",
"connector.class":"com.datamountaineer.streamreactor.connect.cassandra.sink.CassandraSinkConnector",
    "topics":"IndiaDataEngineerTest",
    "connect.cassandra.contact.points": "www.abc.com",
    "connect.cassandra.port": 9042,
    "connect.cassandra.username": "jay",
    "connect.cassandra.password": "jaytest",
    "connect.cassandra.key.space": "message",
    "connect.cassandra.kcql":"INSERT INTO IndiaTest SELECT datetime,city,phone_number FROM IndiaDataEngineerTest"
    }
}

现在开始连接后,我立即在遇到错误后发送配置文件。

[2018-11-13 01:39:55,166] INFO Preparing statements for IndiaDataEngineerTest->IndiaTest (com.datamountaineer.streamreactor.connect.cassandra.sink.CassandraJsonWriter:83)
[2018-11-13 01:39:55,178] ERROR Encountered error line 1:33 missing "(" at (com.datamountaineer.streamreactor.connect.cassandra.sink.CassandraJsonWriter:62)
com.datastax.driver.core.exceptions.SyntaxError: line 1:33 missing "(" at missing at com.datastax.driver.core.exceptions.SyntaxError.copy(SyntaxError.java:58)
    at com.datastax.driver.core.exceptions.SyntaxError.copy(SyntaxError.java:24)
    at com.datastax.driver.core.DriverThrowables.propagateCause(DriverThrowables.java:37)
    at com.datastax.driver.core.AbstractSession.prepare(AbstractSession.java:104)
    at com.datamountaineer.streamreactor.connect.cassandra.sink.CassandraJsonWriter$$anonfun$3.apply(CassandraJsonWriter.scala:108)
    at com.datamountaineer.streamreactor.connect.cassandra.sink.CassandraJsonWriter$$anonfun$3.apply(CassandraJsonWriter.scala:104)
    at scala.util.Try$.apply(Try.scala:192)

任何人都可以帮助我或建议出什么问题了吗??? 预先感谢。

1 个答案:

答案 0 :(得分:0)

该问题已解决,因为我没有使用正确版本的Cassandra。对于kafka版本1.1.0与kafka连接1.0.0,它需要Cassandra版本3.0.9或更高版本。