用kafka构建数据管道

 
把kafka看着是一个数据的端点,怎么把kafka数据移到mysql,elasticSearchs 这里面介绍kafka connect API怎么样帮忙我们把数据移到我们想要的位置。
 

构建数据管道时需要考虑的问题

 
1.及时性,kafka作为一个基于流的数据平台,提供了可靠的伸缩性,多集群高可用的方案。这一点可以保证及时性。如果因为网络延迟,那么数据也不会丢失。
2.可靠性,我们要避免单点故障,和根据自己的业务情况来设置生产者和消费者的一些必要的参数。如生产者的提交方法,不完全选举,等等
3.高吞吐量和动态吞吐量。kafka使用多线程来拆分任务,最大限度利用了cpu,还支持压缩数据传输数据。
 

数据格式

本身支持apache Avro 序列化数据,可以是json格式 自定义序列化方式。
或者转成Parquet 写入HDFS,或转成CSV写入S3

转换,

kafka在这方面只支持类型转换,这方面还是其他etl 解决方案支持比较好
 

安全性

kafka支持加密传输和认证授权,所以不用担心安全问题、
故障处理能力
 
kafka会把数据持久化在磁盘上,一般保存7天,所以不要担心数据丢失问题。
 

如何在connect API和客户端API之间做出选择

 
如果是消息生产的话那么选择客户端,来源数据一般来源用户,connect只能连接一个数据端点,但不可能是用户数据收集的入口。
如果用于传输数据,如mysql 到elasticsearch 这样选用connect API 是个不错的选择
 
 

运行connect

 
connect 不需要安装,本身和kafka一起安装了,所以我们只需要配置我们需要的参数即可,启动和kafka类似
bin/connect-distributed.sh config/connect-distibuted.properties
 
connect进程有几个重要的配置参数
 
bootstrap.servers 可以集群模式或者单点
group.id 具有相同group.id的worker属于同一个集群。
key.converter 和value.converter connect可以处理存储在kafka里的不用格式的数据。
有些key.converter.schema.enable 设置成true或者false来指定JSON消息是否包含schema
对应的key.converter.schema.registry.url 指定schema registry的位置 value同样。
 
 
启动之后如果需要使用mysql 那么下载jdbc和mysql 驱动包 即可使用。elasticsearch也是同样。
都是操作api。
 

深入理解connect

 
连接器插件实现了connector API 负责3件事情
1.决定需要运行多少个任务
2,按照任务来拆分数据复制
3.从worker进程获取任务配置并将其传递下去。
 

任务

负责将数据移入或移除kafka。
 
worker进程
负责处理http请求,还负责保存连接器的配置,启动连接器和连接器任务,并把配置消息传递给任务。如果一个worker崩溃了,集群其他worker进程会感知到,并将原本属于这个worker的任务分配给其他进程。
 

connect之外的选择

 
Hadoop的flume elasticsearch fluentd
 

kafka学习(六)的更多相关文章

  1. Kafka学习之(六)搭建kafka集群

    想要搭建kafka集群,必须具备zookeeper集群,关于zookeeper集群的搭建,在Kafka学习之(五)搭建kafka集群之Zookeeper集群搭建博客有说明.需要具备两台以上装有zook ...

  2. 大数据 -- kafka学习笔记:知识点整理(部分转载)

    一 为什么需要消息系统 1.解耦 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险.许多 ...

  3. kafka学习笔记:知识点整理

    一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险. ...

  4. Hbase深入学习(六) Java操作HBase

    Hbase深入学习(六) ―― Java操作HBase 本文讲述如何用hbase shell命令和hbase java api对hbase服务器进行操作. 先看以下读取一行记录hbase是如何进行工作 ...

  5. TweenMax动画库学习(六)

    目录            TweenMax动画库学习(一)            TweenMax动画库学习(二)            TweenMax动画库学习(三)            Tw ...

  6. Kafka学习-简介

      Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用.目前越来越多的开源分布式处理系统如Cloudera.Apache Storm.S ...

  7. Kafka学习-入门

    在上一篇kafka简介的基础之上,本篇主要介绍如何快速的运行kafka. 在进行如下配置前,首先要启动Zookeeper. 配置单机kafka 1.进入kafka解压目录 2.启动kafka bin\ ...

  8. Kafka学习之路

    一直在思考写一些什么东西作为2017年开篇博客.突然看到一篇<Kafka学习之路>的博文,觉得十分应景,于是决定搬来这“他山之石”.虽然对于Kafka博客我一向坚持原创,不过这篇来自Con ...

  9. kafka学习2:kafka集群安装与配置

    在前一篇:kafka学习1:kafka安装 中,我们安装了单机版的Kafka,而在实际应用中,不可能是单机版的应用,必定是以集群的方式出现.本篇介绍Kafka集群的安装过程: 一.准备工作 1.开通Z ...

随机推荐

  1. Spring mvc 搭建Mybatis

    本文建立在spring mvc已经搭建起来的基础上. 首先看要引入的jar包,其中高亮的是为了mybatis新引入的. <properties>       <spring.webm ...

  2. bootstrap-table(2)问题集

    参考;https://www.cnblogs.com/landeanfen/p/4993979.html 1.分页参数sidePagination 如果是服务端分页,返回的结果必须包含total.ro ...

  3. 基本运算符与if while详解:

    ''' 基本运算符与if while详解: ''' # 算术运算符 # + - * / % // ** # 返回一个数值 # 比较运算符 # > >= < <= == != # ...

  4. thinkphp5杂谈--项目架构和模板搭建(view视角)

    nginx网站配置 项目架构 项目文件夹 视图模板 一种出幺蛾子的访问办法 访问相关特色模块并渲染视图

  5. python的xlrd、xlwt模块、openpyxl /pymsql使用

    xlrd模块: https://www.cnblogs.com/machangwei-8/p/10736528.html#_label0 xlwt模块 https://www.cnblogs.com/ ...

  6. re模块和正则

    正则表达式:就是用来筛选字符串中特定内容的一串具有某种逻辑规则的字符组成.正则表达式不是Python独有的,而是一门独立的技术,它在所有的编程语言中都有使用,在Python中使用就必须依赖于re模块. ...

  7. ESP8266-模拟输出(PWM)

    PWM(Pulse Width Modulation,脉宽调制),是在保持波的频率不变的同时改变脉宽的技术 首先,我们来理解一下占空比.一个脉冲周期由一个ON周期(VCCC)和一个OFF周期(GND) ...

  8. python接口自动化五(参数关联)

    前言 我们用自动化发帖之后,要想接着对这篇帖子操作,那就需要用参数关联了,发帖之后会有一个帖子的id,获取到这个id,继续操作传这个帖子id就可以了 (博客园的登录机制已经变了,不能用账号和密码登录了 ...

  9. .net reactor 加密混淆使用办法

    https://www.cnblogs.com/bile/p/10250888.html 概述:安装了.net reactor之后,可以在安装目录下找到帮助文档REACTOR_HELP.chm,目前没 ...

  10. chrome scrollTop 获取失败问题及解决方案

    https://blog.csdn.net/h357650113/article/details/78384621