kafka数据同步Elasticsearch深入详解
来源:互联网 发布:xmind for mac 编辑:程序博客网 时间:2024/06/05 19:58
1、kafka同步到Elasticsearch方式?
目前已知常用的方式有四种:
1)logstash_input_kafka插件;
缺点:不稳定(ES中文社区讨论)
2)spark stream同步;
缺点:太庞大
3)kafka connector同步;
4)自写程序读取、解析、写入
本文主要基于kafka connector实现kafka到Elasticsearch全量、增量同步。
2、从confluenct说起
LinkedIn有个三人小组出来创业了—正是当时开发出Apache Kafka实时信息列队技术的团队成员,基于这项技术Jay Kreps带头创立了新公司Confluent。Confluent的产品围绕着Kafka做的。
Confluent Platform简化了连接数据源到Kafka,用Kafka构建应用程序,以及安全,监控和管理您的Kafka的基础设施。
confluent组成如下所示:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
默认端口对应表:
组件 | 端口
Apache Kafka brokers (plain text):9092
Confluent Control Center:9021
Kafka Connect REST API:8083
REST Proxy:8082
Schema Registry REST API:8081
ZooKeeper:2181
3、kafka connector介绍。
Kafka 0.9+增加了一个新的特性 Kafka Connect,可以更方便的创建和管理数据流管道。它为Kafka和其它系统创建规模可扩展的、可信赖的流数据提供了一个简单的模型。
通过 connectors可以将大数据从其它系统导入到Kafka中,也可以从Kafka中导出到其它系统。
Kafka Connect可以将完整的数据库注入到Kafka的Topic中,或者将服务器的系统监控指标注入到Kafka,然后像正常的Kafka流处理机制一样进行数据流处理。
而导出工作则是将数据从Kafka Topic中导出到其它数据存储系统、查询系统或者离线分析系统等,比如数据库、 Elastic Search、 Apache Ignite等。
KafkaConnect有两个核心概念:Source和Sink。 Source负责导入数据到Kafka,Sink负责从Kafka导出数据,它们都被称为Connector。
kafkaConnect通过Jest实现Kafka对接Elasticsearch。
4、kafka connector安装
实操非研究性的目的,不建议源码安装。
直接从官网down confluent安装即可。地址:https://www.confluent.io/download/
如下,解压后既可以使用。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
5、kafka connector模式
Kafka connect 有两种工作模式
1)standalone:在standalone模式中,所有的worker都在一个独立的进程中完成。
2)distributed:distributed模式具有高扩展性,以及提供自动容错机制。你可以使用一个group.ip来启动很多worker进程,在有效的worker进程中它们会自动的去协调执行connector和task,如果你新加了一个worker或者挂了一个worker,其他的worker会检测到然后在重新分配connector和task。
6、kafka connector同步步骤
前提:
- 1
如下的服务都需要启动:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
可以,netstat -natpl 查看端口是否监听ok。
步骤1:创建topic
- 1
步骤2:生产者发布消息
假定avrotest topic已经创建。
- 1
- 2
- 3
- 4
- 5
- 6
步骤3:消费者订阅消息测试(验证生产者消息可以接收到)
- 1
步骤4:connector传输数据操作到ES
- 1
- 2
注意此处: connect-standalone模式,对应 connect-avro-standalone.properties要修改;
如果使用connect-distribute模式,对应的connect-avro-distribute.properties要修改。
这里 quickstart-elasticsearch.properties :启动到目的Elasticsearch配置。
quickstart-elasticsearch.properties**设置**:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
7、同步效果。
curl -XGET 'http:// 110.18.6.20 :9200/test-elasticsearch-sink/_search?pretty'
8、连接信息查询REST API
- -
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
9、小结。
他山之石,可以攻玉。
kafka上的小学生,继续加油!
参考:
[1]kafka-connect部署及简介:http://t.cn/RiUCaWx
[2]connector介绍:http://orchome.com/344
[3]英文-同步介绍http://t.cn/RYeZm7P
[4]部署&开发http://t.cn/RTeyOEl
[5]confluent生态链http://t.cn/RTebVyL
[6]快速启动参考:https://docs.confluent.io/3.3.0/quickstart.html
[7]ES-connector:http://t.cn/RTecXmc
- kafka数据同步Elasticsearch深入详解
- kafka数据同步Elasticsearch深入详解
- elasticsearch-jdbc实现MySQL同步到ElasticSearch深入详解
- elasticsearch-jdbc实现MySQL同步到ElasticSearch深入详解
- elasticsearch-jdbc实现MySQL同步到ElasticSearch深入详解
- 分布式搜索引擎Elasticsearch—kafka数据同步插件
- logstash实现日志文件同步到elasticsearch深入详解
- mongo-connector实现MongoDB与elasticsearch实时同步深入详解
- 将kafka数据导入Elasticsearch
- go-mysql-elasticsearch实现mysql 与elasticsearch实时同步深入详解
- Elasticsearch+mysql 数据同步
- elasticsearch mysql数据同步
- elasticsearch-jdbc同步myslq数据到elasticsearch
- Elasticsearch+MySQL数据同步示例
- Elasticsearch-jdbc数据同步配置
- Kafka集群数据同步MirrorMaker
- logstash-input-jdbc实现mysql 与elasticsearch实时同步深入详解
- logstash-input-jdbc实现mysql 与elasticsearch实时同步深入详解
- sklearn中 svm.SVC 函数使用方法和参数说明
- 24岁!杨帆起航!
- Django框架学习笔记(25.Form组件验证)
- 简单粗暴解决You don't have permission to access / on this server.
- MySQL主从复制
- kafka数据同步Elasticsearch深入详解
- github入门到上传本地项目
- layer和easyUI结合:点击确定按钮关闭弹窗
- 2017-12-22 输入常量的判定
- ie的一些兼容问题
- Data truncation: Data too long for column 'xxx' at row 1
- Qunar全链路跟踪及Debug
- 微信小程序Xmljiexi
- Android热更新实现方式