我将在此处描述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

Storm和Kafka集成的重要生产错误和修复相关推荐

  1. kafka和storm集成_Storm和Kafka集成的重要生产错误和修复

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

  2. storm和kafka集成报java.lang.ClassNotFoundException: kafka.api.OffsetRequest解决方法

    添加依赖 <dependency><groupId>org.apache.storm</groupId><artifactId>storm-kafka& ...

  3. kafka修改分区数_大数据技术:解析SparkStreaming和Kafka集成的两种方式

    Spark Streaming是基于微批处理的流式计算引擎,通常是利用Spark Core或者Spark Core与Spark Sql一起来处理数据.在企业实时处理架构中,通常将Spark Strea ...

  4. Storm 消费Kafka数据及相关异常解决

    Storm 消费Kafka数据及相关异常解决 问题 KafkaTopoDemo类 bolt类 问题 storm报错:Exception in thread "main" java. ...

  5. kafka集群中常见错误的解决方法:kafka.common.KafkaException: Should not set log end offset on partition

    kafka集群中常见错误的解决方法:kafka.common.KafkaException: Should not set log end offset on partition 参考文章: (1)k ...

  6. spark kafka java api_java实现spark streaming与kafka集成进行流式计算

    java实现spark streaming与kafka集成进行流式计算 2017/6/26补充:接手了搜索系统,这半年有了很多新的心得,懒改这篇粗鄙之文,大家看综合看这篇新博文来理解下面的粗鄙代码吧, ...

  7. Hudi 0.11.0 + Flink1.14.4 + Hive + Flink CDC + Kafka 集成

    Hudi 0.11.0 + Flink1.14.4 + Hive + Flink CDC + Kafka 集成 一.环境准备 1.1 软件版本 Flink 1.14.4Scala 2.11CDH 6. ...

  8. 计算机ip地址错误,网络ip地址怎么修复_ip地址错误的修复步骤-win7之家

    最近有不少用户反映说遇到了"IP地址错误,网络无法连接"的情况,通常只要将自动获取ip地址设置为手动获取方式就可以了,还不行的话可以使用腾讯电脑管家来对网络异常进行修复,接下来给大 ...

  9. bcb获取计算机名称,win7老电脑共享打印机无法连接0x00000bcb错误的修复方法

    近日win7 64位纯净版网友和爱纯净小编反映自己的老电脑在同一个局域网安装共享打印机时,弹出错误提示框"windows无法连接打印机,操作失败,错误为0x00000bcb".这是 ...

最新文章

  1. 百度开放AI应用学习!
  2. DeepMind推出分布式深度强化学习架构IMPALA,让一个Agent学会多种技能
  3. 看视频笔记1【wpf】
  4. java.net.Socket 解析
  5. 仿照vue实现简易的MVVM框架(一)
  6. python如何进行格式化输出变量_Python变量格式化输出实现原理解析
  7. java 心跳 断网重连_工作笔记5 - websocket心跳重连机制
  8. ❤️Mybatis编程界的能手—使用注解开发(建议收藏)
  9. python打印多个变量名_如何在Python中打印单个和多个变量?
  10. 简单方法解决bootstrap3 modal异步加载只一次的问题
  11. python多线程刷网站流量(含ip代理池文档,可制作成exe文件挂服务器代刷)
  12. ToStringBuilder.reflectionToString用法
  13. Bus Hound实用教程
  14. matlab方差分析盒型图
  15. Quartus II工具1——signaltap
  16. java json 解析_Java解析JSON的四种方式
  17. 视频编辑SDK,AE模版SDK,绿幕抠图SDK,AI人像分割SDK,VLOG模版SDK
  18. linux格式化TF卡工具
  19. CVE-2022-0847 Linux内核提权漏洞分析
  20. 【新书推荐】【2018.11】海洋SAR遥感研究进展(第一版)

热门文章

  1. 由「Metaspace容量不足触发CMS GC」从而引发的思考
  2. 你必须掌握的 21 个 Java 核心技术
  3. JavaScript学习总结(八)——JavaScript数组
  4. Java NIO系列教程(四) Scatter/Gather
  5. jdk1.8.0_45源码解读——ArrayList的实现
  6. Oracle入门(十四.15)之捕获Oracle服务器异常
  7. Oracle入门(十三A)之Select
  8. 阿里巴巴对Java编程【常量定义】的规约
  9. java8 hash算法
  10. mybatis三种(查询,参数传递)