elasticsearch 卡夫卡弹性搜索连接器-';刷新超时已过期,记录未刷新:';
我对kafka->elasticsearch连接器有一个奇怪的问题。第一次启动时一切都很好,我在elasticsearch中收到一个新数据,并通过kibana dashboard进行检查,但当我使用同一个生产者应用程序在kafka中生成新数据并再次尝试启动connector时,我在elasticsearch中没有得到任何新数据。 现在我遇到了这样的错误:
elasticsearch 卡夫卡弹性搜索连接器-';刷新超时已过期,记录未刷新:';,
elasticsearch,apache-kafka,apache-kafka-connect,confluent-platform,
elasticsearch,Apache Kafka,Apache Kafka Connect,Confluent Platform,我对kafka->elasticsearch连接器有一个奇怪的问题。第一次启动时一切都很好,我在elasticsearch中收到一个新数据,并通过kibana dashboard进行检查,但当我使用同一个生产者应用程序在kafka中生成新数据并再次尝试启动connector时,我在elasticsearch中没有得到任何新数据。 现在我遇到了这样的错误: [2018-02-04 21:38:04,987] ERROR WorkerSinkTask{id=log-platform-elastic-
[2018-02-04 21:38:04,987] ERROR WorkerSinkTask{id=log-platform-elastic-0} Commit of offsets threw an unexpected exception for sequence number 14: null (org.apache.kafka.connect.runtime.WorkerSinkTask:233)
org.apache.kafka.connect.errors.ConnectException: Flush timeout expired with unflushed records: 15805
我正在使用下一个命令运行连接器:
/usr/bin/connect-standalone /etc/schema-registry/connect-avro-standalone.properties log-platform-elastic.properties
连接avro单机版。属性:
bootstrap.servers=kafka-0.kafka-hs:9093,kafka-1.kafka-hs:9093,kafka-2.kafka-hs:9093
key.converter=io.confluent.connect.avro.AvroConverter
key.converter.schema.registry.url=http://localhost:8081
value.converter=io.confluent.connect.avro.AvroConverter
value.converter.schema.registry.url=http://localhost:8081
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
# producer.interceptor.classes=io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor
# consumer.interceptor.classes=io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor
#rest.host.name=
rest.port=8084
#rest.advertised.host.name=
#rest.advertised.port=
plugin.path=/usr/share/java
name=log-platform-elastic
key.converter=org.apache.kafka.connect.storage.StringConverter
connector.class=io.confluent.connect.elasticsearch.ElasticsearchSinkConnector
tasks.max=1
topics=member_sync_log, order_history_sync_log # ... and many others
key.ignore=true
connection.url=http://elasticsearch:9200
type.name=log
和原木平台弹性。属性:
bootstrap.servers=kafka-0.kafka-hs:9093,kafka-1.kafka-hs:9093,kafka-2.kafka-hs:9093
key.converter=io.confluent.connect.avro.AvroConverter
key.converter.schema.registry.url=http://localhost:8081
value.converter=io.confluent.connect.avro.AvroConverter
value.converter.schema.registry.url=http://localhost:8081
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
# producer.interceptor.classes=io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor
# consumer.interceptor.classes=io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor
#rest.host.name=
rest.port=8084
#rest.advertised.host.name=
#rest.advertised.port=
plugin.path=/usr/share/java
name=log-platform-elastic
key.converter=org.apache.kafka.connect.storage.StringConverter
connector.class=io.confluent.connect.elasticsearch.ElasticsearchSinkConnector
tasks.max=1
topics=member_sync_log, order_history_sync_log # ... and many others
key.ignore=true
connection.url=http://elasticsearch:9200
type.name=log
我检查了与kafka代理、elasticsearch和schema registry的连接(此时schema registry和connector在同一台主机上),一切正常。Kafka代理在端口9093上运行,我可以使用Kafka avro控制台从主题中读取数据。
我将非常感激在这方面的任何帮助 只需将flush.timeout.ms更新为大于10000(默认为10秒)
根据文件:
flush.timeout.ms
用于定期更新的超时(以毫秒为单位)
刷新,并在等待缓冲区空间由
添加记录时完成的请求。如果超过此超时时间
这项任务将失败
类型:长默认值:10000重要性:低
我们可以优化弹性搜索配置来解决这个问题。有关配置参数,请参阅下面的链接 以下是可以控制消息速率流的关键参数,最终有助于解决问题: flush.timeout.ms:增加冲水时间可能有助于增加呼吸 用于定期刷新的超时(毫秒),以及 等待已完成的请求提供可用的缓冲区空间,如 添加记录。如果超过此超时,任务将失败 最大缓冲记录数:尝试降低缓冲记录限制 每个任务在阻塞前缓冲的最大记录数 接受更多的记录。此配置可用于限制 每个任务的内存使用情况 batch.size:尝试减小批大小 写入时作为批处理的记录数 弹性搜索 tasks.max:减少或增加并行线程(使用者实例)的数量。如果带宽不能处理reduce任务,这将控制弹性搜索
它通过调整上述参数解决了我的问题Elasticsearch日志中的任何相关消息?您解决了这个问题吗?我遇到了类似的问题,只是想检查一下..注意:最近添加了一个修复程序。不过,我还没有在任何官方版本中看到:相关问题: