如何将cassandra集成为Apache Kafka中的数据生产者?
kafka配置上有任何特定配置吗?
答案 0 :(得分:4)
Cassandra Sink连接器在confluent hub处可用,但Casfandra Source连接器不是kafka提供的。到目前为止,Cassandra Source连接器由landoop提供。
但是Kafka也提供了创建自定义连接器的选项。
您需要扩展SourceConnector
连接器类并覆盖其方法。
public class CassandraSourceConnector extends SourceConnector {
@Override
public Class<? extends Task> getTaskClass() {
return ImplementationClasName.class;
}
@Override
public void start(Map<String, String> props) {
// Properties
}
@Override
public void stop() {
// Nothing to do since no background monitoring is required
}
您可以在https://docs.confluent.io/current/connect/devguide.html
中找到完整的信息在创建cassandra源连接器类之后,您还需要对其进行配置,就像Cassandra Sink Connector一样。
到目前为止,Landoop Cassandra Source连接器仅适用于kafka 1.0和kafka 1.1。我建议您创建自己的连接器。您也可以访问此blog以获得信息。
希望,对您有帮助。
答案 1 :(得分:4)
为了将数据从外部系统导入Kafka,建议使用Kafka Connect。 Kafka Connect是一个框架,可提供可扩展且可靠的方式在Apache Kafka与其他数据系统之间流式传输数据。
Kafka连接器有两种主要类型,source
和sink
连接器。源连接器将数据从外部系统传输到Kafka。接收器连接器将数据从Kafka传输到外部系统。
要从Cassandra到Kafka生成数据,您需要找到一个Cassandra Source连接器。最受欢迎的一个是Landoop提供的Cassandra Source连接器,它是Lenses的一部分,可以是found here。您将使用KCQL(不要与KSQL混淆)来编写连接器查询,以从Cassandra中获取所需的信息。
我建议您看一下这篇博客文章Getting started with the Kafka Connect Cassandra Source,以进行所有设置。