S4
S4会将数据里的每一条记录包装成event事件,每个事件是一个KV对,同时有eventType来标示这个事件的类型。
PE是S4中的基本运算单元。每个PE只负责处理自己所关心的eventtype,并且只处理自己所对应的key值的event。PE处理后可能输出一个或多个event。就像hadoop上的map,reduce的接口实现类似的。
ProcessingNode是一个逻辑节点,负责监听消息的到来,对消息进行处理,然后通过Communication Layer将event在集群中分发。
通过图2的设计,可以保证,对应于相同event type,key和key值的event一定会被路由到对应的PN。
底下的Communication Layer和Zookeeper共同完成了集群管理和自动failover功能。
http://www.programmer.com.cn/5304/
http://rdc.taobao.com/team/jm/archives/728
Flumebase
FB的优点就是基于streaming-sql形式,跟hive很类似,利用flume来采集相关数据。
首先客户端向FB-server提交sql语句,如创建一个streaming,即表定义语句,则FB-server会将该表信息放到内存的符号表中。
然后客户端可以向fb-server提交一个查询语句,对sql语句进行语法分析与检查,然后生成一棵flow树,同时根据该流的类型,建立起监听数据的工作单元。
比如是flume上收集的某个topic数据,就是向flume注册该topic,当该topic有数据时,就向fb-server发送过来,然后server端在执行flow树上的操作,将最后的结果返回给客户端。
http://flumebase.org/
Storm
类似于Hadoop框架的即时数据处理工具,是由BackType开发的,9月份会开源。
类拟的框架还有streambase,hstreaming等。
后记:这篇是半个月前写的,最近一直在忙找工作的事情,自已也没想到会这么早离开第一份正式工作,不过这个过程,倒是让我学习了很多职场知识,可悲的是,这半个月基本上没有看或写一行代码,接下来不能这样了,得继续拿起我的家伙,干活!