2014-09-25 69 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