Apache Storm与Hadoop安全相关技术解析
1. Apache Storm的Trident API
1.1 Trident API简介
Storm除了提供用于构建拓扑的常规API外,还提供了Trident API。Trident是在Storm之上进行实时计算的高级抽象。如果你熟悉Pig或Cascading等高级批处理框架,那么Trident的概念对你来说会很熟悉。Trident能让你优雅地表达实时计算,同时获得最大性能。它允许你自然地构建容错的实时计算,而无需接触底层API来控制流分组和确认元组。此外,Trident还为任何数据库或持久存储添加了有状态增量处理的原语。最重要的是,Trident具有一致且精确一次的语义,这是普通API所没有的。如果你需要构建一些要求最强一致性的应用程序,应该使用Trident API。
1.2 Trident API示例:单词计数程序
以下代码片段展示了使用Trident实现的单词计数程序:
TridentTopology topology = new TridentTopology();
TridentState wordCounts =
topology.newStream("spout1", spout)
.each(new Fields("sentence"), new Split(), new Fields("word"))
.groupBy(new Fields("word"))
.persistentAggregate(new MemoryMapSta