Storm和Kafka集成的重要生产错误和修复

我将在此处描述Storm和Kafka集成模块的一些细节,一些您应该意识到的重要错误以及如何克服其中的一些错误(尤其是对于生产安装)。

我在生产安装中大量使用Apache Storm,并将Kafka作为主要输入源(Spout)。

使用Kafka和版本的Storm集成模块:

  • Storm 0.x通过现有模块storm-kafka支持Kafka 0.8.x
  • Storm 1.0.x通过新模块storm-kafka-client支持Kafka 0.9.x
  • Storm 1.x通过新模块storm-kafka-client支持Kafka 0.10.x

最近,我将Storm 1.0.3 (从0.9.6)升级到Kafka 0.9.0.1 (从0.8.2.2)。
不幸的是,Storm 1.0.3有两个主要的错误 ,您必须解决这些错误才能在生产环境中使用它。

主要错误(与Kafka相关):

  1. “如果在运行元组时重新分配分区,则新的Kafka喷口将崩溃[ JIRA-2104 ]在1.0.x分支中已解决( Pull-1980 )
  2. “ Storm-kafka-client:不总是重播失败的元组” [ JIRA-2087 ]在1.x分支中已解决( Pull-1826 )

当开始从Storm 0.9.6到1.0.3的迁移过程时,我遇到了上述错误。 在强调我的拓扑时,各种事情开始不起作用,或者看到停滞不前的Workers停止处理数据。
在阅读了许多日志并进行了许多测试之后,我们终于了解了这个问题(KafkaSpout错误)。 我们暂停了迁移过程,并希望解决这些问题。
幸运的是,Storm提交者已经修复了这些错误,因此已经提供了解决方案。 非常感谢Storm社区!!!

为了解决这些问题,我将这两个修补程序移植到了“ storm-kafka-client ”的派生版本中,并发布了具有新maven版本( 1.0.3- <custom> 1.0 )的新自定义模块。 然后,我仅在项目中引用新的自定义版本。
之后,我们再次开始了压力测试,一切都按预期进行。
请注意,错误“ 2087”仅在1.x分支中已修复,但将其移植到1.0.3版本非常容易。

幸运的是,几天前发布了Storm 1.1.0 。 此版本已经修复了这些错误以及许多其他错误。 我尚未进行测试,但是我会尽快尝试。
当我将这些修订移植回1.0.3版本时,没有Storm 1.1.0版本。

如果您打算使用Storm 1.0.3发行版,那么您必须知道该发行版的一些其他错误,您可能需要在“ custom ”发行版中对其进行修复:

  • “ Kafka中断可能导致拓扑锁定” [ STORM-2440 ] [ FIX ]
  • “ ReportErrorAndDie并不总是消亡” [ STORM-2194 ] [ 修复 ]
  • “在捕获InterruptedException之后,Utils.sleep方法未设置中断标志” [ STORM-2396 ] [ 修复 ]
  • “即使topology.eventlogger.executors = 0,也会实例化事件记录器螺栓” [ STORM-2389 ] [ 修复 ]
  • “故障恢复Blob删除在BlobSynchronizer.syncBlobs中也失败” [ STORM-2386 ] [ FIX ](与Nimbus HA有关)
  • “ Storm-HDFS的listFilesByModificationTime已损坏” [ STORM-2350 ] [ 修复 ]
  • “ ReadClusterState的ProfileAction处理映射中的类型不匹配” [ STORM-2345 ] [ FIX ]

上述大多数错误(2440和2194除外)已在Storm 1.1.0版本中解决。 新版本包含您可能感兴趣的新功能(流式SQL,Druid和OpenTSB集成等)。

最好的祝福,
阿德里安斯·达迪斯(Adrianos Dadis)。
真正的民主需要免费软件

翻译自: https://www.javacodegeeks.com/2017/04/important-production-bugs-fixes-storm-kafka-integration.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/350243.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

博客园背景设置CSS代码

/配色参考->>->>>//https://zh.spycolor.com/color-index,a*/ #home { margin: 0 auto; width: 90%;/原始65/ min-width: 980px;/页面顶部的宽度/ background-color:rgba(233,214,107,0.3);/博客主页主体框的颜色/ padding: 30px; margin-top: 25px; margin-bot…

matplotlib 画多条折线图且x轴下标非数值

直接上python代码&#xff1a; # -*- coding: utf-8 -*- import matplotlib.pyplot as plt names [GFK, SA, DA-NBNN, DLID, DaNN, Ours] x range(len(names))y_1 [0.464, 0.45, 0.528, 0.519, 0.536, 0.841] y_2 [0.613, 0.648, 0.766, 0.782, 0.712, 0.954] y_3 [0.663…

julia常用矩阵函数_Julia系列教程3 数学运算 矩阵运算

数学运算https://www.zhihu.com/video/1113554595376295936数学运算比Matlab更直观的数学表达方式x 102x>>20但这就导致了可能会出现语法的冲突十六进制整数文本表达式 0xff 可以被解析为数值文本 0 乘以变量 xff浮点数文本表达式 1e10 可以被解析为数值文本 1 乘以变量…

Mysql 模糊查询 转义字符

MySQL的转义字符“\”\0 一个ASCII 0 (NUL)字符。 \n 一个新行符。 \t 一个定位符。 \r 一个回车符。 \b 一个退格符。 \ 一个单引号(“”)符。 \ " 一个双引号(“ "”)符。 \\ 一个反斜线(“\”)符。 \% 一个…

Pytorch LSTM初识(详解LSTM+torch.nn.LSTM()实现)1

pytorch LSTM1初识 目录 pytorch LSTM1初识 ​​​​​​​​​​​​​​​​​​​​​ 一、LSTM简介1

Java命令行界面(第8部分):Argparse4j

Argparse4j是“ Java命令行参数解析器库”&#xff0c;其主页描述为“基于Python的argparse模块的Java命令行参数解析器库”。 在本文中&#xff0c;我将简要介绍如何使用Argparse4j 0.7.0处理命令行参数&#xff0c;该参数与本系列中的前七篇有关Java命令行处理的文章中所解析…

MvvmLight框架使用入门(三)

MvvmLight框架使用入门&#xff08;三&#xff09; 本篇是MvvmLight框架使用入门的第三篇。从本篇开始&#xff0c;所有代码将通过Windows 10的Universal App来演示。我们将创建一个Universal App并应用MvvmLight框架。 首先通过VS2015创建一个名为UniversalApp的空工程&#x…

Pytorch LSTM实例2

对Pytorch中LSTM实例稍作修改,这是一个词性标注的实例 #导入相应的包 import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optimtorch.manual_seed(1)#准备数据的阶段 def prepare_sequence(seq, to_ix):idxs = [to_ix[w] for w in …

java更好的语言_Java,如果这是一个更好的世界

java更好的语言只是梦想着有一个更好的世界&#xff0c;在该世界中&#xff0c;Java平台中的一些旧错误已得到纠正&#xff0c;而某些令人敬畏的缺失功能也已实现。 不要误会我的意思。 我认为Java很棒。 但是它仍然存在一些问题&#xff0c;就像其他平台一样。 我没有任何特定…

anaconda安装成功测试_学习笔记120—Win10 成功安装Anaconda 【亲测有效,需注意几点!!!】...

Win10 下安装 Anaconda一、下载安装 Anaconda(勾选 PATH)&#xff1a;Anaconda 是专注于数据分析的 Python 发行版本&#xff0c;包含了 conda、Python 等 190 多个科学包及其依赖项。使用 Anaconda 的好处在于可以省去很多配置环境的步 骤&#xff0c;省时省心又便于分析。下载…

Pytorch 词嵌入word_embedding1初识

torch.nn.Embedding(num_embeddings, embedding_dim, padding_idx=None, max_norm=None, norm_type=2, scale_grad_by_freq=False, sparse=False)参数所表示的含义: num_embeddings (int) :嵌入字典的大小 embedding_dim (int) :每个嵌入向量的大小 padding_idx (int, optio…

Python语言 目录

待续.... 转载于:https://www.cnblogs.com/jiangchunsheng/p/11077884.html

JDK 9清单:Project Jigsaw,sun.misc.Unsafe,G1,REPL等

Java 9距离&#xff08;希望&#xff09;数月了&#xff0c;现在该讨论一下即将发生的变化以及您应该采取的措施 Java 9即将来临&#xff08;我们正在计算到达的日子 &#xff09;&#xff0c;其中包含一系列新功能和改进功能。 这就是为什么我们决定创建一份清单来准备自己的…

Pytorch 词嵌入word_embedding2实例(加载已训练词向量)

目录 1、加载已训练好的词嵌入 2、是否需要重新训练词嵌入 3、不重新训练词嵌入时优化器设置

IPv4数据报格式及其语义

IPv4数据报格式及其语义 一、IP数据报的格式如下图所示 版本 首部长度 服务类型 数据报长度 16比特标识 标志 13比特片偏移 寿命 上层协议 首部检验和 32比特源IP地址 32比特目的IP地址 选项&#xff08;如果有的话&#xff09; 数据 IPv4数据报格式 二、各部分语…

华景机器人怎么控制_【华景QQ机器人怎么用】华景QQ机器人好不好_使用技巧-ZOL软件百科...

发布日期&#xff1a;2016年02月21日 Release 2 && Release 3新增功能和优化及修复修复严重崩溃问题。全面支持emoji表情。修复某些用户不能登录。轻量级重包处理。优化消息显示。修复一个数组越界错误。修复一个数组下标不能为0错误。加快消息处理速度。UI线程与消息处…

Java命令行界面(第9部分):parse-cmd

parse-cmd库由单个类ParseCmd.java组成&#xff0c;该类是“用于在Java应用程序中定义和解析命令行参数的Java类。” 该库托管在Google Code存档上 &#xff0c;因此可以随时关闭 。 该JAR似乎也可以在GitHub上使用 。 这篇文章介绍了如何使用parse-cmd 0.0.93处理Java中的命令…

Pytorch--Tensor, Numpy--Array,Python--List 相互之间的转换

1、 Python--List Numpy--Array list = [[1, 2, 4, 8], [0.1, 0.4, 0.9, 0.8]] list_np = np.array(list) print(list_np的维度:,list_np.shape) print(list_np的类型:,type(list_np))运行结果: 2、Python--List Pytorch--Tensor test = [[1, 2, 4, 8], [0.1, 0.4, 0…

Redis的各项功能解决了哪些问题?

Redis是什么 官方简介解释到&#xff1a;Redis是一个基于BSD开源的项目&#xff0c;是一个把结构化的数据放在内存中的一个存储系统&#xff0c;你可以把它作为数据库&#xff0c;缓存和消息中间件来使用。 同时支持strings&#xff0c;lists&#xff0c;hashes&#xff0c;set…

join left semi_HIVE--left semi join

实验&#xff1a;hive> select * from b1;OK1 003 201705111 004 201705121 005 201705132 006 201705143 007 20170515Time taken: 0.041 secondshive> select * from b2;OK1 005 201705132 006 …