流的合併操作,是指根據兩個流的關聯條件將兩個流合併成乙個流,然後在進行後面的處理操作,如果使用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...