如何在没有Confluent的情况下使用Kafka Connect for Cassandra

时间:2017-03-03 09:23:01

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

如何在不使用Confluent框架的情况下使用Kafka Connect和Cassandra。

3 个答案:

答案 0 :(得分:5)

Kafka Connect 框架。汇编仅提供连接器。如果您不想使用Confluent Open Source(但为什么不能使用?),您也可以将所有这些连接器与vanilla Apache Kafka一起使用。

有多个Casandra连接器可用:https://www.confluent.io/product/connectors/

顺便说一句:Confluent中没有列出任何列出的Casandra连接器。

当然,您也可以编写自己的连接器或使用任何其他第三方连接器。

答案 1 :(得分:3)

DataMountaineer Stream Reactor有一个可以与Kafka Connect一起使用的Cassandra Source and Sink解决方案。

将jar文件(download)放入Kafka libs文件夹,然后按如下方式指定连接器:

{
"name": "cassandra-NAME",
"config": {
    "tasks.max": "1",
    "connector.class": "com.datamountaineer.streamreactor.connect.cassandra.source.CassandraSourceConnector",
    "connect.cassandra.key.space": "KEYSPACE",
    "connect.cassandra.source.kcql": "INSERT INTO KAFKA_TOPIC SELECT column1, timestamp_col FROM CASSANDRA_TABLE PK timestamp_col",
    "connect.cassandra.import.mode": "incremental",
    "connect.cassandra.contact.points": "localhost",
    "connect.cassandra.port": 9042,
    "connect.cassandra.import.poll.interval": 10000
}}

启动Kafka Connect

bin/connect-distributed.sh config/connect-distributed.properties

通过上面提到的JSON属性文件将Cassandra Connector加载到Kafka Connect中(假设它的名称为connect-cassandra-source.json)

curl -X POST -H "Content-Type: application/json" -d @config/connect-cassandra-source.json localhost:8083/connectors

您需要创建一个将timeuuid列作为群集键的表。这被描述为here

答案 2 :(得分:0)

是的,基本上你必须使用DataStax的Kafka Connect api和Cassandra驱动程序,并为Kafka-cassandra-connect构建代码。