Twitter开源大数据实时分析系统Heron:Heron架构
副标题[/!--empirenews.page--]
Heron架构Heron是Apache Storm的一个直接继承者。从架构角度来看,它与Storm截然不同,但是从API的角度看它是完全向后兼容的。 代码库Heron代码库的详细指南在这里。 拓扑你可以认为一个Heron集群是一种管理流式处理实体(称作拓扑)的生命周期机制的机制。更多信息可以查看Heron拓扑文档。 与Apache Storm的关系Heron是Apache Storm的直接继承者,但是以下面两点为构建目标: Heron设计目标
拓扑组件Heron拓扑的下列核心组件在以下小节中深入讨论: Topology MasterTopology Master(TM)管理拓扑的整个生命周期,从提交直到最终被杀死。当==heron==部署一个拓扑时,它启动了一个TM和多个containers。这个TM创建了一个临时ZooKeeper节点以保证这个拓扑只有一个TM,并且这个TM可被拓扑中任何进程发现。这个TM也负责构建拓扑的物理计划,传递给不同组件。 Topology Master配置TM有多种配置参数,你可以在拓扑生命周期每一个阶段进行调整。 Container每个Heron拓扑包括多个containers,每个container包含多个Heron实例,一个Stream Manager和一个Metrics Manager。Containers与拓扑的TM通信以确保拓扑形成一个全联通图。 Stream ManagerStream Manager(SM)管理拓扑组件间元组的路由。一个拓扑中的每个Heron实例连接到它的本地SM,同时在一个给定的拓扑中所有的SM互相连接形成了一个网络。下面是SM网络的图示: 除了作为数据流的路由引擎外,SM还负责在需要时在拓扑中传播反压。下面是反压的图示: 上图中,假定bolt B3(在container A中)所有输入都来自spout S1。B3比其他组件运行更慢。结果是,container A的SM会拒绝来自容器C和D的输入,因为那样会导致那些容器的套接字缓冲填满,进而导致吞吐量崩溃。 在这种情况下,Heron的反压机制起效。容器A中的SM会向其他所有SM发送一条消息。结果是,其他SM会检查容器的物理计划,并切断流入bolt B3的spouts的输入(本例中是spout S1)。 一旦落后的bolt(B3)恢复正常,容器A的SM会通知其他SM,这个拓扑的流路由就会恢复正常。 Stream Manger配置SM有多种配置参数,你可以在拓扑生命周期每一个阶段进行调整。 Heron Instance一个Heron Instance(HI)是一个处理一个独立spout或bolt任务的进程,支持简单的调试和分析。目前,Heron只支持Java,所以所有HI都是JVM进程,但是未来会改变。 Heron Instance配置HI有多种配置参数,你可以在拓扑生命周期每一个阶段进行调整。 Metrics Manager每个拓扑运行一个Metrics Manager(MM),用于收集和导出一个container中所有组件的度量。然后把哪些度量信息路由给Topology Master和外部收集器,如Scribe, Graphite,或类似系统。 集群级别组件上述小节列出的所有组件在每个拓扑中都可以找到。下面列出的组件是集群级别的组件,在特定拓扑外起作用。 Heron CLIHeron有一个称作==heron==的CLI工具,用于管理拓扑。文档参照Managing Topologies。 Heron Tracker(编辑:淮北站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |