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到底有哪些配置需要我们去了解的,配置都有英文注释,所以每一部分是干什 ...
随机推荐
- Java项目使用 Tomcat 部署 Linux 服务器
一.安装 Java 环境 1 下载 jdk 8 yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel 设置 centos7 环境变量 v ...
- LeetCode 818. Race Car
原题链接在这里:https://leetcode.com/problems/race-car/ 题目: Your car starts at position 0 and speed +1 on an ...
- 56、Spark Streaming: transform以及实时黑名单过滤案例实战
一.transform以及实时黑名单过滤案例实战 1.概述 transform操作,应用在DStream上时,可以用于执行任意的RDD到RDD的转换操作.它可以用于实现,DStream API中所没有 ...
- 暂时性死区TDZ理解与总结
为什么会出现暂时性死区? 先来看看 ES6 标准中对 let/const 声明中的解释 第13章,有如下一段文字:The variables are created when their contai ...
- 3D数据采集和重建
3D数据采集和重建是从传感器数据生成三维或时空模型.一般而言,这些技术和理论适用于大多数或所有传感器类型,包括光学,声学,激光扫描,[1]雷达,热学,[2]地震.[3][4] 内容 · ...
- (7)Go切片
切片 切片(Slice)是一个拥有相同类型元素的可变长度的序列.它是基于数组类型做的一层封装.它非常灵活,支持自动扩容. 切片是一个引用类型,它的内部结构包含地址.长度和容量.切片一般用于快速地操作一 ...
- hive select 出现问题 SemanticException
由于把hadoop的以下配置项 <property> <name>fs.defaultFS</name> <value>hdfs://localhost ...
- 简书 markdown 代码高亮标记
SyntaxHighlight language language_key 1C 1c ActionScript actionscript Apache apache AppleScript a pp ...
- ICEM-实验环
原视频下载地址:https://pan.baidu.com/s/1eSbxiO6 密码: 7114
- devops 运维平台相关知识
1.https://choerodon.io/zh/community/ (代码 https://github.com/choerodon/choerodon) 猪齿鱼 2.https://www.o ...