用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. 浅谈java虚拟机|系列2|JVM运行时

    今天我们继续谈谈JVM架构. 今天主要讲讲JVM运行时, 先来一个图: 上篇文章,我们知道,JVM运行时,简单来说就是把class文件翻译成操作系统相关的机器码(或汇编语言),然后通过调用操作系统函数 ...

  2. dns服务的基本配置

    本文环境:CentOS 7 简介 DNS(Domain Name System)即域名服务系统,是Internet上用的最频繁的服务之一,它的本质是一个范围很广的分布式数据库,组织成域层次结构的计算机 ...

  3. Lock的await/singal 和 Object的wait/notify 的区别(转载)

    在使用Lock之前,我们都使用Object 的wait和notify实现同步的.举例来说,一个producer和consumer,consumer发现没有东西了,等待,producer生成东西了,唤醒 ...

  4. 整合Spring Data JPA与Spring MVC: 分页和排序pageable

    https://www.tianmaying.com/tutorial/spring-jpa-page-sort Spring Data Jpa对于分页以及排序的查询也有着完美的支持,接下来,我们来学 ...

  5. Django报错 No module named 'django.templates'

    前言 Django 模板报错了 修改方法: 将你的工程文件下(my_site)的settings.py中的TEMPLATES中的templates字段全部改为template, 亲测可用~^~

  6. gitlab搭建之互备模式

    gitlab搭建之互备模式   gitlab搭建之互备模式 前言:gitlab目前默认的部署方式是本地单机部署,为了提高gitlab环境的可靠性和稳定性,必须构建一套互备搭建方案:借助gitolilt ...

  7. ESP8266-Soft AP模式 —— 谁想连上我

    AP是Access Point简称,也就是访问接入点,是网络的中心节点.一般家庭的无线路由器就是一个AP,众多站点(STA)加入到它所组成的无线网络,网络中的所有的通信都通过AP来转发完成. 软AP也 ...

  8. hdu 1754 线段树 水题 单点更新 区间查询

    I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  9. 【BZOJ4565】 [Haoi2016]字符合并

    Description 有一个长度为 n 的 01 串,你可以每次将相邻的 k 个字符合并,得到一个新的字符并获得一定分数.得到的新字 符和分数由这 k 个字符确定.你需要求出你能获得的最大分数. I ...

  10. latex beamer技巧

    %章节标题\section{Related work(LSH)} %开始一页ppt \begin{frame}{Related work}{} \partitle{Locality-Sensitive ...