一、设置文件源配置,输出配置
其中的源文件Source使用到的配置文件是${KAFKA_HOME}/config/connect-file-source.properties
name=local-file-source
connector.class=FileStreamSource
tasks.max=1
file=/my/kafka/test.txt
topic=connect-test
其中的输出文件Sink使用到的配置文件是${KAFKA_HOME}/config/connect-file-sink.properties
name=local-file-sink
connector.class=FileStreamSink
tasks.max=1
file=/my/kafka/test.sink.txt
topics=connect-test
Broker使用的连接器配置文件是${KAFKA_HOME}/config/connect-standalone.properties
bootstrap.servers=10.135.128.39:9092
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=true
value.converter.schemas.enable=true
internal.key.converter=org.apache.kafka.connect.json.JsonConverter
internal.value.converter=org.apache.kafka.connect.json.JsonConverter
internal.key.converter.schemas.enable=false
internal.value.converter.schemas.enable=false
offset.storage.file.filename=/tmp/connect.offsets
offset.flush.interval.ms=10000
配置说明:
name - 连接器唯一的名称,不能重复。
connector.calss - 连接器的Java类。
tasks.max -连接器创建任务的最大数。
connector.class配置支持多种格式:全名或连接器类的别名。
比如连接器是org.apache.kafka.connect.file.FileStreamSinkConnector,
你可以指定全名,也可以使用FileStreamSink或FileStreamSinkConnector。Sink
connector也有一个额外的选项来控制它们的输入:
topics - 作为连接器的输入的topic列表。
二、启动运行
1、启动Kafka Broker
bin/kafka-server-start.sh config/server.properties
2、启动Source Connector和Sink Connector
bin/connect-standalone.sh config/connect-standalone.properties config/connect-file-source.properties config/connect-file-sink.properties
3、启动consumer
bin/kafka-console-consumer.sh --bootstrap-server 10.135.128.39:9092 --topic test --from-beginning
4、写入数据到test.txt文件中,并观察consumer的变化
5、查看test.sink.txt
三、总结
至此,一个简单的kafka connect demo就完成了, 这里是演示了读取file文件,
kafka connect 还可应用于jdbc、MongoDB、HBase 等等,这些功能让大批量数据导入/导出Kafka很方便。