Storm中Trident流合併的例子demo

2021-07-01 20:38:07 字數 936 閱讀 9790

流的合併操作,是指根據兩個流的關聯條件將兩個流合併成乙個流,然後在進行後面的處理操作,如果使用spout和bolt這種程式設計模型的話寫起來會比較困難和繁瑣,因為要設定緩衝區來儲存第一次過來的資料,後續還要進行兩者的比較,使用trident應用起來比較方便,對原來的程式設計模型進行了一定的抽象。**例項:

需求:兩個spout: spout1:裡面的資料是 name ,id 和tel,

spout2是*** 和id;

首先對spout1進行過濾,過濾掉不是186的**號碼,然後顯示

然後根據將過濾後的stream和spout2進行合併

**如下:

過濾 :

public class fileltertest  extends basefilter

return false;

}}

過濾  顯示方法

public class functiontest extends basefunction 

}

最終顯示方法:

public class functiontest3 extends basefunction

}

topomain

public class testtrident 

}

結果:

spout1的資料:[jack, 1, 186107]

spout1的資料:[tome, 2, 1514697]

spout1的資料:[lay, 3, 186745]

spout1的資料:[lucy, 4, 1396478]

[1, jack, 186107, boy]

[3, lay, 186745, gril]

storm的流分組

1.shuffle grouping 隨機分組 這種方式會隨機分發tuple給bolt的各個task,每個bolt例項接收到的相同數量的tuple。2.fields grouping 按欄位分組 根據指定欄位的值進行分組。比如說,乙個資料流根據 word 字段進行分組,所有具有相同 word 字段值...

Storm常見模式 流聚合

流聚合 stream join 是指將具有共同元組 tuple 欄位的資料流 兩個或者多個 聚合形成乙個新的資料流的過程。從定義上看,流聚合和sql中表的聚合 table join 很像,但是二者有明顯的區別 table join的輸入是有限的,並且join的語義是非常明確的 而流聚合的語義是不明確...

Storm系列 十 聚流示例

功能 將多個資料來源的資料匯集到乙個處理單元進行集中分類處理 入口類testmain 1 publicclass testmain 19 資料來源類randomwordspout1 輸出欄位為name 1 publicclass randomwordspout1 extends baserichsp...