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. Optimal Marks SPOJ - OPTM(最小割)

    传送门 论文<最小割模型在信息学竞赛中的应用>原题 二进制不同位上互不影响,那么就按位跑网络流 每一位上,确定的点值为1的与S连一条容量为INF的有向边.为0的与T连一条容量为INF的有向 ...

  2. 基于思岚A1激光雷达+OpenGL+VS2017的Ramer-Douglas-Peucker算法的实现

    时隔两年 又借到了之前的那个激光雷达,最老版本的思岚A1,甚至不支持新的固件,并且转接板也不见了,看了下淘宝店卖¥80,但是官方提供了一个基于STM32的实现方式,于是我估摸着这个转接板只是一个普通的 ...

  3. Centos7配置静态网卡

    1.打开VMware,查看ifconfig 2.进入网卡编辑 [root@localhost ~]# cd /etc/sysconfig/network-scripts/ [root@localhos ...

  4. JavaScript基础06——Math对象和日期对象

    内置对象-Math:  Math对象用于执行 数学任务,Math 不像 Date 和 String 那样是对象的类,因此没有构造函数Math().无需创建,直接把Math当成对象使用,就可以调用其所有 ...

  5. jaeger使用yugabyte作为后端存储的尝试以及几个问题

    前边写过使用scylladb 做为jaeger 的后端存储,还是一个不错选择的包括性能以及 兼容性,对于 yugabyte 当前存在兼容性的问题,需要版本的支持,或者尝试进行一些变动 create 语 ...

  6. 21-ESP8266 SDK开发基础入门篇--C# TCP客户端 , 控制LED亮灭

    https://www.cnblogs.com/yangfengwu/p/11192603.html 由于是台式机,,没有插无线网卡...所以呢我就用调试助手监控下数据 后期让WIFI连接路由器的时候 ...

  7. JavaScript高级程序编程(一)

    第一章 JavaScript简史  20170510 JavaScript 组成部分: 核心(ECMAScript)  文档对象模型(DOM)浏览器对象模型(BOM) Netscape Navigat ...

  8. Spark在美团的实践

    https://tech.meituan.com/2016/03/31/spark-in-meituan.html 本文已发表在<程序员>杂志2016年4月期. 前言 美团是数据驱动的互联 ...

  9. CTF RCE(远程代码执行)

    目录 php代码执行 一.相关函数 1.代码注入 2.命令执行 二.命令执行的绕过 1.命令执行的分隔符 2.空格代替 3.绕过 4.命令执行的各种符号 三.命令无回显的情况 1.判断 2.利用 四. ...

  10. 汇编写的BASE64

    汇编写的BASE64 unit Base64; { procedure TForm1.Button1Click(Sender: TObject); var Source, Dest: TStream; ...