apache - 没有数据发送时,Storm 1.0.2 hdfs-bolt确认元组

标签 apache hadoop apache-storm

我实现了一个Storm拓扑,该拓扑从Kafka Spout接收JSON数据,通过两个 bolt 进行处理,然后使用hdfs-bolt将消息输出到hdfs。将Storm 0.9.6与Kafka 0.8.2.1和Hadoop 2.5.0结合使用,效果很好。我为之实现的生产系统正在将工具更新为Storm 1.0.2,Kakfa 0.10.1.0和Hadoop 2.6.0。当我更新以上版本的软件包信息时,hdfs bolt 现在甚至在通过喷口发送任何数据之前就开始确认“ghost”元组。它会继续在UI中显示错误,直到拓扑被杀死为止。此外,当我实际处理数据时,有时仅将消息写入hdfs。大多数时候没有任何输出。关于版本中的哪些差异会引起这样的问题的任何想法?

最佳答案

不能确定,但​​是您可能正面临剔除元组,这些元组会发到 bolt 上。尝试将以下条件添加到执行逻辑中以处理此问题:

public void execute(Tuple tuple, BasicOutputCollector oc){      
    if (!TupleUtils.isTick(tuple))
    {
         //Your code
    }
}

关于apache - 没有数据发送时,Storm 1.0.2 hdfs-bolt确认元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42938840/

相关文章:

maven - Storm-starter与intellij idea,maven项目找不到类

apache-storm - Storm - 主管在重启时崩溃

apache - 部署 GWT 和 HTML 应用程序

php - Mac 上的 Safari 5 在上传文件时挂起

hadoop - 通过Swagger Rest API调用运行Sqoop Java程序时,包丢失错误

apache-storm - Storm 支持类似批处理的处理

linux - 为 mod_expires 使用异常

apache - 从 Laravel 4 URL 中删除 index.php 并将 www 重写为非 www

hadoop - Hive中分区和分桶的结构区别

hadoop - 如何使用SequenceFileInputFormat将字节数组序列化为本地文件