如何配置kafkaConnect从kafka到cassandra

时间:2016-07-20 20:03:01

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

我想设置从kafka主题到cassandra的kafka连接

问题很简单:说我在kafka中有一个带有json数据的演示主题,如

{"id":"1", "name":"Alex", "clicks":2}

我想自动将其推入带有列ID,名称和点击次数的cassanra表。

我正在研究kafka-connect-cassandra,但我能找到的唯一例子就是从卡桑德拉读书并通过中间的卡夫卡写到另一张卡桑德拉表。

我的问题是如何从卡夫卡而不是卡桑德拉读取它? 我正在寻找一些连接器开源的例子来做这件事。

2 个答案:

答案 0 :(得分:1)

您所指的示例是同时展示连接器的源和接收器功能。如果您的用例是将数据从Kafka主题推送到Cassandra表,那么您只需要一个接收器。请按照以下步骤操作

  1. 创建自己的接收器属性文件。使用this as an示例。将其另存为my-sink.properties
  2. 转到安装的主目录并执行命令CLASSPATH=<<path-to-connector-jar>> ./bin/connect-standalone connect-standalone.properties my-sink.properties
  3. 如果您对更详细步骤的示例感兴趣,请参阅此处:https://github.com/yaravind/kafka-connect-jenkins#standalone-mode(完全披露:我为Jenkins维护该连接器。)

答案 1 :(得分:0)

我遇到了同样的问题,我按照https://www.confluent.io/blog/kafka-connect-cassandra-sink-the-perfect-match/上的内容进行了操作。我使用DataMountaineer驱动程序(http://docs.datamountaineer.com/en/latest/cassandra-sink.html),并以分布式模式进行设置。

设置完成后,cassandra连接器的配置Json(通过REST API上传以进行汇合连接)应如下所示:

{
"name": "cassandra.sink.yourConfigName",
"config": {
    "connector.class": "com.datamountaineer.streamreactor.connect.cassandra.sink.CassandraSinkConnector",
    "tasks.max": "1",
    "topics": "<your topic>",
    "connect.cassandra.sink.kcql": "INSERT INTO <your_table> SELECT *  FROM <your_kafka_topic>;",
    "connect.cassandra.contact.points": "<cassandra nodes>",
    "connect.cassandra.port": "<cassandra port>",
    "connect.cassandra.key.space": "<cassandra keyspace>",
    "connect.cassandra.username": "cassandra",
    "connect.cassandra.password": "cassandra"
    }}