您好,登錄后才能下訂單哦!
小編給大家分享一下storm中tuple結構是怎么樣的,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
storm使用tuple來作為它的數據模型。每個tuple是一堆值,每個值有一個名字,并且每個值可以是任何類型, 在我的理解里面一個tuple可以看作一個沒有方法的java對象。總體來看,storm支持所有的基本類型、字符串以及字節數組作為tuple的值類型。你也可以使用你自己定義的類型來作為值類型, 只要你實現對應的序列化器(serializer)。
一個Tuple代表數據流中的一個基本的處理單元,例如一條cookie日志,它可以包含多個Field,每個Field表示一個屬性。
Tuple本來應該是一個Key-Value的Map,由于各個組件間傳遞的tuple的字段名稱已經事先定義好了,所以Tuple只需要按序填入各個Value,所以就是一個Value List。
一個沒有邊界的、源源不斷的、連續的Tuple序列就組成了Stream。
topology里面的每個節點必須定義它要發射的tuple的每個字段。 比如下面這個bolt定義它所發射的tuple包含兩個字段,類型分別是: double和triple。
public class DoubleAndTripleBolt implements IRichBolt {
private OutputCollector _collector;
@Override
public void prepare(Map conf, TopologyContext context, OutputCollector collector) {
_collector = collector;
}
@Override
public voide xecute(Tuple input) {
int val = input.getInteger(0);
_collector.emit(input,new Values(val*2, val*3));
_collector.ack(input);
}
@Override
public void cleanup() {
}
@Override
public void declareOutputFields(OutputFieldsDeclarer declarer) {
declarer.declare(newFields("double","triple"));
}
}
declareOutputFields方法定義要輸出的字段 : ["double", "triple"]。
以上是“storm中tuple結構是怎么樣的”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。