Storm Kafka与配置和代码集成
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及其基本概念
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:
{root path}/{id}/
{root path}/{id}/
{root path}/{id}/
{root path}/{id}/
…
确保默认情况下,偏移量将存储在Storm使用的同一Zookeeper群集中。此外,我们可以通过我们的spout配置覆盖这个,如下所示:
spoutConfig.zkServers = ImmutableList.of("otherserver.com");
spoutConfig.zkPort = ;
以下配置显示了强制喷口回卷到先前偏移的能力。我们可以在spout配置上执行forceStartOffsetTime,如下所示:
spoutConfig.forceStartOffsetTime(-);
这将选择围绕该时间戳写的最新偏移量以开始消费。此外,我们可以通过传入-1来强制喷口始终从最新的偏移开始,并且我们可以通过传入-2来强制它从最早的偏移开始。
让我们来讨论卡夫卡的优缺点
一世。用于连接Kafka Cluster的参数
此外,KafkaSpout是一个常规的spout实现,它从Kafka集群中读取数据。此外,为了连接到Kafka集群,它需要以下参数:
a。卡夫卡经纪人名单
b。每个主机的分区数
c。用于拉取消息的主题名称。
d。ZooKeeper中的根路径,Spout存储消费者偏移量
e。在ZooKeeper中存储使用者偏移量所需的使用者ID在
下面的代码示例中显示了使用前面参数的KafkaSpout类实例初始化:
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配置中使用它们。
要指定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与配置和代码集成的更多相关文章
- storm笔记:Storm+Kafka简单应用
storm笔记:Storm+Kafka简单应用 这几天工作须要使用storm+kafka,基本场景是应用出现错误,发送日志到kafka的某个topic.storm订阅该topic.然后进行兴许处理.场 ...
- hadoop+yarn+hbase+storm+kafka+spark+zookeeper)高可用集群详细配置
配置 hadoop+yarn+hbase+storm+kafka+spark+zookeeper 高可用集群,同时安装相关组建:JDK,MySQL,Hive,Flume 文章目录 环境介绍 节点介绍 ...
- 整合Kafka到Spark Streaming——代码示例和挑战
作者Michael G. Noll是瑞士的一位工程师和研究员,效力于Verisign,是Verisign实验室的大规模数据分析基础设施(基础Hadoop)的技术主管.本文,Michael详细的演示了如 ...
- Storm实战:在云上搭建大规模实时数据流处理系统(Storm+Kafka)
在大数据时代,数据规模变得越来越大.由于数据的增长速度和非结构化的特性,常用的软硬件工具已无法在用户可容忍的时间内对数据进行采集.管理和处理.本文主要介绍如何在阿里云上使用Kafka和Storm搭建大 ...
- Storm+kafka的HelloWorld初体验
从16年4月5号开始学习kafka,后来由于项目需要又涉及到了storm. 经过几天的扫盲,到今天16年4月13日,磕磕碰碰的总算是写了一个kafka+storm的HelloWorld的例子. 为了达 ...
- Kafka应用实践与生态集成
1.前言 Apache Kafka发展至今,已经是一个很成熟的消息队列组件了,也是大数据生态圈中不可或缺的一员.Apache Kafka社区非常的活跃,通过社区成员不断的贡献代码和迭代项目,使得Apa ...
- Kafka 入门和 Spring Boot 集成
目录 Kafka 入门和 Spring Boot 集成 标签:博客 概述 应用场景 基本概念 基本结构 和Spring Boot 集成 集成概述 集成环境 kafka 环境搭建 Spring Boot ...
- SpringCloudStream(RabbitMQ&Kafka)&Spring-Kafka配置使用
目录 是什么 解决问题 使用方式 创建生产者项目 pom yml 生产消息方法 接口 实现 创建消费者项目 pom yml 接收消息方法 重复消费 消费者yml 持久化 消费者负载个性配置(预拉取) ...
- Kafka broker配置介绍 (四)
这部分内容对了解系统和提高软件性能都有很大的帮助,kafka官网上也给出了比较详细的配置详单,但是我们还是直接从代码来看broker到底有哪些配置需要我们去了解的,配置都有英文注释,所以每一部分是干什 ...
随机推荐
- Windows环境下设置Tomcat8以服务的形式运行,不再打开Tomcat窗口
内容简介 在Windows操作系统下,设置Tomcat8以服务的形式运行,按照以下3步来操作即可.前提条件:已安装好Java环境,并配置好java的环境变量:已下载好Tomcat8并解压到某目录. s ...
- JS优化常用片断
防抖debounce装饰器 在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时. function debounce(func, delay) { let isCooldown = fa ...
- [ARIA] aria-describedby & aria-labelledby
When to use describedby: For example you have a close button: <button aria-describedby="clos ...
- LOJ P10015 扩散 题解
每日一题 day49 打卡 Analysis 用dis数组记录每两个点之间的时间,再用一个传递闭包来维护最小的时间就好了 #include<iostream> #include<cs ...
- C# .net core 相对路径转绝对路径 (官方示例)
public static string GetAbsolutePath(string relativePath) { FileInfo _dataRoot = new FileInfo(typeof ...
- virtualenvwrapper 方便的virtualenv 包装
virtualenvwrapper 是一个方便的virtualenv 包装我们可以用来方便的管理python 的开发环境,同时 也支持对于项目的管理 安装 pip 安装 pip install v ...
- [CSP-S 2019]括号树
[CSP-S 2019]括号树 源代码: #include<cstdio> #include<cctype> #include<vector> inline int ...
- HEXO快速搭建自己的博客
关注我,每天都有优质技术文章推送,工作,学习累了的时候放松一下自己. 本篇文章同步微信公众号 欢迎大家关注我的微信公众号:「醉翁猫咪」 很多人有自己的博客,那么你想要吗?利用Hexo就可以搭建专属自己 ...
- element ui 中的时间选择器怎么设置默认值/el-date-picker区间选择器怎么这是默认值
template代码 <el-date-picker value-format="yyyy-MM-dd" v-model="search.date" ty ...
- D3.js的v5版本入门教程(第十一章)——交互式操作
D3.js的v5版本入门教程(第十一章) 与图形进行交互操作是很重要的!所谓的交互操作也就是为图形元素添加监听事件,比如说当你鼠标放在某个图形元素上面的时候,就会显示相应的文字,而当鼠标移开后,文字就 ...