2014-09-25 94 views

回答

1

Kafka Spout声明其输出字段与任何其他组件一样。我的解释是基于KafkaSpout的当前implementation

在KafkaSpout.java类中,我们看到了调用KafkaConfig方案的getOutputFields()方法的declareOutputFields方法。

@Override 
public void declareOutputFields(OutputFieldsDeclarer declarer) { 
    declarer.declare(_spoutConfig.scheme.getOutputFields()); 
} 

默认情况下,KafkaConfig使用RawMultiScheme实现这样此方法。

@Override 
    public Fields getOutputFields() { 
    return new Fields("bytes"); 
    } 

那么这是什么意思?如果你宣布螺栓从KafkaSpout与fieldGrouping你知道包含每一个元组等于现场读取元组“字节”是要由同一个任务来执行。如果你想发射任何领域,你应该实现你的需求的新计划。

2

Storm中的字段分组(一般来说)用于螺栓,不适用于喷口。这是通过InputDeclarer课程完成的。
当您致电setBolt()TopologyBuilder时,返回InputDeclarer

+0

我的不好,我的意思是它的螺栓。 这就是我有一个卡夫卡鲸鱼喷嘴,它会发射元组到随后的螺栓。现在对于包含在风暴分布中的卡夫卡壶嘴,我必须首先知道它发出的田野。这些字段id是否与kafka发布者发布的相同? – Nitin 2014-09-28 07:05:36