1.目标 - 风暴卡夫卡整合

在本Kafka教程中,我们将学习Storm Kafka Integration的概念。此外,我们将在此Kafka Storm集成教程中讨论Storm架构,Storm Cluster。因此,为了使Kafka开发人员更容易从Storm拓扑中摄取和发布数据流,我们执行Storm Kafka Integration。 
那么,让我们开始Kafka Storm Integration教程。

Storm Kafka与配置和代码集成

测试你的卡夫卡知识 - 你在比赛中的位置

2.什么是风暴?

Apache Storm是一个开源,分布式,可靠且容错的系统。Storm有各种用例,如实时分析,在线机器学习,连续计算和提取转换负载(ETL)范例。
但是,对于流数据处理,有几个组件可以协同工作,例如:

  • 喷口

spout是流的源,它是连续的日志数据流。

  • 螺栓

此外,spout将数据传递给组件,我们称之为bolt。基本上,bolt消耗任意数量的输入流,进行一些处理,并可能发出新的流。
让我们探讨Apache Kafka用例| Kafka应用程序
下图描述了Storm Architecture中的spout和bolt:

Storm Kafka集成 - Apache Storm Architecture

但是,让我们假设一个Storm集群是一个螺栓组件链。在这里,每个螺栓对喷口流式传输的数据执行某种转换。
此外,作业在Storm集群中称为拓扑。虽然,这些拓扑结构永远存在。之后,创建拓扑(计算图),用于Storm的实时计算。那么,数据如何通过螺栓从喷口流出,拓扑将定义它。

最佳卡夫卡采访准备破解采访

3.什么是Storm Kafka Integration?

一般来说,卡夫卡和风暴相互补充。因此,我们可以说他们强大的合作可以为快速移动的大数据提供实时流分析。因此,为了使开发人员更容易从Storm拓扑中摄取和发布数据流,我们执行Kafka-Storm集成。

Apache Storm Kafka集成 - 与Kafka Broker的Storm集群

下图描述了Kafka Storm集成工作模型的高级集成视图:

风暴卡夫卡融合 - 卡夫卡风暴的工作模式

一个。使用KafkaSpout

基本上,从Kafka集群读取的常规spout 实现是KafkaSpout。它的基本用法是:
阅读Apache Kafka Architecture及其基本概念

  1. SpoutConfig spoutConfig = new SpoutConfig(
    ImmutableList.of("kafkahost1", "kafkahost2"), // list of Kafka brokers
    , // number of partitions per host
    "clicks", // topic to read from
    "/kafkastorm", // the root path in Zookeeper for the spout to store the consumer offsets
    "discovery"); // an id for this consumer for storing the consumer offsets in Zookeeper
    KafkaSpout kafkaSpout = new KafkaSpout(spoutConfig);

但是,对于每个主机的静态代理列表和固定数量的分区,将对spout进行参数化。
此外,它还存储在Zookeeper中消耗的偏移的状态。此外,为了存储该特定喷口的偏移量和id,使用根路径对喷口进行参数化。因此,分区的偏移量将存储在这些路径中,其中“0”,“1”是分区的ID:

  1. {root path}/{id}/
    {root path}/{id}/
    {root path}/{id}/
    {root path}/{id}/

确保默认情况下,偏移量将存储在Storm使用的同一Zookeeper群集中。此外,我们可以通过我们的spout配置覆盖这个,如下所示:

  1. spoutConfig.zkServers = ImmutableList.of("otherserver.com");
    spoutConfig.zkPort = ;

以下配置显示了强制喷口回卷到先前偏移的能力。我们可以在spout配置上执行forceStartOffsetTime,如下所示:

  1. spoutConfig.forceStartOffsetTime(-);

这将选择围绕该时间戳写的最新偏移量以开始消费。此外,我们可以通过传入-1来强制喷口始终从最新的偏移开始,并且我们可以通过传入-2来强制它从最早的偏移开始。
让我们来讨论卡夫卡的优缺点

一世。用于连接Kafka Cluster的参数

此外,KafkaSpout是一个常规的spout实现,它从Kafka集群中读取数据。此外,为了连接到Kafka集群,它需要以下参数:
a。卡夫卡经纪人名单
b。每个主机的分区数
c。用于拉取消息的主题名称。
d。ZooKeeper中的根路径,Spout存储消费者偏移量
e。在ZooKeeper中存储使用者偏移量所需的使用者ID在
下面的代码示例中显示了使用前面参数的KafkaSpout类实例初始化:

  1. Copy
    SpoutConfig spoutConfig = new SpoutConfig(
    ImmutableList.of("localhost:9092", "localhost:9093"),
    ,
    " othertopic",
    "/kafkastorm",
    "consumID");
    KafkaSpout kafkaSpout = new KafkaSpout(spoutConfig);

此外,为了存储消息偏移的状态和段消耗跟踪(如果消耗),Kafka Spout使用ZooKeeper。
在为ZooKeeper指定的根路径中,存储这些偏移量。此外,为了存储消息偏移量,Storm默认使用自己的ZooKeeper集群。但是,通过设置其他ZooKeeper集群,我们可以在Spout配置中使用它们。

使用命令修改Apache Kafka Operations

要指定Spout如何通过设置属性从Kafka集群中获取消息,Kafka Spout还提供了一个选项,如缓冲区大小和超时。
值得注意的是,为了使用Storm运行Kafka,需要设置Storm和Kafka集群,并且它应该处于运行状态。

所以,这完全是关于Storm Kafka Integration。希望你喜欢我们的解释。

4。结论

因此,在这个Storm Kafka集成教程中,我们已经看到了Storm Kafka Integration的概念。在这里,我们讨论了Apache Storm,Storm Architecture,Storm Cluster的简要介绍。最后,我们讨论了使用KafkaSpout的实现

Storm Kafka与配置和代码集成的更多相关文章

  1. storm笔记:Storm+Kafka简单应用

    storm笔记:Storm+Kafka简单应用 这几天工作须要使用storm+kafka,基本场景是应用出现错误,发送日志到kafka的某个topic.storm订阅该topic.然后进行兴许处理.场 ...

  2. hadoop+yarn+hbase+storm+kafka+spark+zookeeper)高可用集群详细配置

    配置 hadoop+yarn+hbase+storm+kafka+spark+zookeeper 高可用集群,同时安装相关组建:JDK,MySQL,Hive,Flume 文章目录 环境介绍 节点介绍 ...

  3. 整合Kafka到Spark Streaming——代码示例和挑战

    作者Michael G. Noll是瑞士的一位工程师和研究员,效力于Verisign,是Verisign实验室的大规模数据分析基础设施(基础Hadoop)的技术主管.本文,Michael详细的演示了如 ...

  4. Storm实战:在云上搭建大规模实时数据流处理系统(Storm+Kafka)

    在大数据时代,数据规模变得越来越大.由于数据的增长速度和非结构化的特性,常用的软硬件工具已无法在用户可容忍的时间内对数据进行采集.管理和处理.本文主要介绍如何在阿里云上使用Kafka和Storm搭建大 ...

  5. Storm+kafka的HelloWorld初体验

    从16年4月5号开始学习kafka,后来由于项目需要又涉及到了storm. 经过几天的扫盲,到今天16年4月13日,磕磕碰碰的总算是写了一个kafka+storm的HelloWorld的例子. 为了达 ...

  6. Kafka应用实践与生态集成

    1.前言 Apache Kafka发展至今,已经是一个很成熟的消息队列组件了,也是大数据生态圈中不可或缺的一员.Apache Kafka社区非常的活跃,通过社区成员不断的贡献代码和迭代项目,使得Apa ...

  7. Kafka 入门和 Spring Boot 集成

    目录 Kafka 入门和 Spring Boot 集成 标签:博客 概述 应用场景 基本概念 基本结构 和Spring Boot 集成 集成概述 集成环境 kafka 环境搭建 Spring Boot ...

  8. SpringCloudStream(RabbitMQ&Kafka)&Spring-Kafka配置使用

    目录 是什么 解决问题 使用方式 创建生产者项目 pom yml 生产消息方法 接口 实现 创建消费者项目 pom yml 接收消息方法 重复消费 消费者yml 持久化 消费者负载个性配置(预拉取) ...

  9. Kafka broker配置介绍 (四)

    这部分内容对了解系统和提高软件性能都有很大的帮助,kafka官网上也给出了比较详细的配置详单,但是我们还是直接从代码来看broker到底有哪些配置需要我们去了解的,配置都有英文注释,所以每一部分是干什 ...

随机推荐

  1. EF实体类指定部分属性不映射数据库标记

    命名空间 ;using System.ComponentModel.DataAnnotations.Schema; 实体部分 public partial class Student { [NotMa ...

  2. MATLAB中运算符优先级

    下述运算符的优先级从低到高: 1.先决或(||): 2.先决与(&&): 3.逻辑或(|): 4.逻辑与(&): 5.等于类(<,<=,>,>=,==, ...

  3. php正则表示中的元字符

    元字符 抛出问题: \d 代表匹配一个字符.而我现在想要匹配十个八个,任意多个数字肿么办? 这个时候我们就要用到元字符.在使用原子的时候,发现只能够匹配一个字符,可是要匹配多个字符就出现了问题.大理石 ...

  4. 计蒜客——Goldbach

    Goldbach 判断大素数 #include<cstdio> #include<cstdlib> using namespace std; #define N 10000 t ...

  5. C Primer Plus--C预处理器和C库(2)

    目录 #include指令 头文件 其他指令 #undef 条件编译 内联函数 #include指令 #include <头文件.h>//在标准系统目录中寻找头文件 #include &q ...

  6. Zuul超时配置

    在实际运用过程中,发现有时候zuul的第一次请求经常会超时.不知道你们怎样,我经常在重启zuul后,第一次访问经常会出现超时现象,但是第二次访问就不会了. 第一次经常超时 这是因为zuul采用了懒加载 ...

  7. pycharm+gitee环境搭建(超详细)

    背景:本地开发代码在没有云托管的时候代码很容易丢掉,如果是小团队,这时候可以使用公司团队注册一个账号共同使用.如果是个人用于代码存储或者用于以后项目经验也推荐gitee.大的团队可以购买 环境:win ...

  8. Nginx服务器的安装

    #解压之前下载的nginx源码安装包 [root@redhat7 nginx-1.8.1]# tar xzvf nginx-1.8.1.tar.gz #进到新解压出来的nginx目录下 [root@r ...

  9. MongoDB 关系型数据库表(集合)与表(集合)之间的几种关系

    简述关系数据库中表与表的 3 种关系 一对一的关系:例如:一个人对应一个唯一的身份证号,即为一对一的关系. 一对多关系 :例如:一个班级对应多名学生,一个学生只能属于一个班级,即为一对多关系 多对多关 ...

  10. D3.js的v5版本入门教程(第九章)——完整的柱状图

    D3.js的v5版本入门教程(第九章) 一个完整的柱状图应该包括的元素有——矩形.文字.坐标轴,现在,我们就来一一绘制它们,这章是前面几章的综合,这一章只有少量新的知识点,它们是 d3.scaleBa ...