当没有数据发送到它时,风暴1.0.2 hdfs-bolt acking元组

时间:2017-03-21 21:54:51

标签: apache hadoop apache-storm

我已经实现了一个Storm拓扑,它从Kafka Spout接收JSON数据,通过两个螺栓进行处理,然后使用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”元组,然后我甚至通过spout发送了任何数据。它继续显示UI中的ack,直到拓扑被杀死。此外,当我实际处理数据时,消息有时只写入hdfs。大部分时间都没有输出。关于版本中的哪些差异会导致像这样的问题的任何想法?

1 个答案:

答案 0 :(得分:0)

不确定,但很可能你面对的是发射到你的螺栓的嘀嗒元组。尝试将以下条件添加到执行逻辑中以处理此问题:

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