2

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

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

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

我想自动将其推送到 cassanra 表中,其中包含 id、name、clicks 列。

我正在研究kafka-connect-cassandra,但我能找到的唯一示例是从 cassandra 读取并通过中间的 kafka 写入另一个 cassandra 表。

我的问题是如何让它从 kafka 而不是 cassandra 中读取?我正在寻找一些连接器开源并带有示例。

4

2 回答 2

1

我遇到了同样的问题,我关注了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 上传以进行 confluent-connect)应如下所示:

{
"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"
    }}
于 2017-05-17T20:48:29.437 回答
1

您所指的示例是同时展示连接器的源和接收器功能。如果您的用例是将数据从 Kafka 主题推送到 Cassandra 表,那么您只需要一个接收器。按着这些次序

  1. 创建您自己的接收器属性文件。以此为例。另存为my-sink.properties
  2. 进入安装主目录并执行命令CLASSPATH=<<path-to-connector-jar>> ./bin/connect-standalone connect-standalone.properties my-sink.properties

如果您对更详细的步骤示例感兴趣,请参见此处:https ://github.com/yaravind/kafka-connect-jenkins#standalone-mode (完全披露:我为 Jenkins 维护该连接器。)

于 2016-07-22T07:23:05.080 回答