从BSP模型到Apache Hama(4)

  一个Groom服务器对应一个处理BSPMaster分配的任务,每个groom都需要与BSPMaster进行通讯,处理任务并且想BSPMaster处理报告状态,集群状态下的Groom Server需要运行在HDFS分布式存储环境中,而且对于Groom Server来说一个groom 服务器对应一个BSPPeer节点,需要运行在同一个物理节点上。

Zookeeper

  在Apache HaMa项目中zookeeper是用来有效的管理BSPPeer节点之间的同步间隔(barrier synchronization),同时在系统失效转发的功能上发挥了重要的作用。

Apache Hama作业流程

从BSP模型到Apache Hama

一个新的job被提交后,BSPJobClient先做一些初始化Job的工作:准备好作业的输入资源、代码等。

BSPMaster将Job划分为一个个的task,将task分配给GroomServer去执行,执行过程中维护GroomServer的进度与状态。GroomServer发送心跳给BSPMaster来保持通信。超级步的控制是由BSPMaster完成的。

GroomServer启动BSPPeer,由BSPPeer来具体执行task。GroomServer主要任务是BSPPeer的启动和停止,维护任务的执行状态,向BSPMaster报告状态。一个GroomServer可运行多个task。类似于MapReduce的tasktracker的任务槽。所有的task有一个masterTask,masterTask在整个计算开始和结束时分别调用setup()和cleanup()。如果该GroomServer下的一个task失败,GroomServer会重新启动这个task,如果3次重启task都失败,则GroomServer向BSPMaster汇报该任务失败。

BSPeer在计算期间间的通信是P2P方式进行的,由zookeeper负责调度。在一个超步中BSPeer只能发消息或者处理上一个超步中接收到的消息。例:A发送消息给B—>栅栏—>本次超级步结束 下一个超级步开始—>B接收到A发送的消息—>……

另外,默认配置下Hama是将要发送的和接收到的消息都缓存在内存中,所以hama本身的同步通信功能不适合做大量数据传递,它只适合在同步计算过程中发送少量的消息。

在整个计算过程中,zookeeper负责栅栏同步,将来会用于容错机制。

Apache Hama与Google Pregel

  Hama类似Google发明的Pregel,如果你听过Google Pregel这个利器的话,那么就对BSP计算模型不会陌生,Google的Pregel也是基于BSP模型,在Google的整个计算体系中有20%的计算是依赖于Pregel的计算模型,Google利用Pregel实现了图遍历(BFS)、最短路径(SSSP)、PageRank计算,我猜想 Google的Google Me 产品很有可能会大量采用Pregel的计算方式,用Pregel来绘制Google Me产品中SNS的关系图。

  Google的Pregel是采用GFS或BigTable进行持久存储,Google的Pregel是一个Master-slave主从结构,有一个节点扮演master角色,其它节点通过name service定位该顶点并在第一次时进行注册,master负责对计算任务进行切分到各节点(也可以自己指定,考虑load balance等因素),根据顶ID哈希分配顶点到机器(一个机器可以有多个节点,通过name service进行逻辑区分),每个节点间异步传输消息,通过checkpoint机制实行容错(更高级的容错通过confined recovery实现),并且每个节点向master汇报心跳(ping)维持状态。

  Hama是Apache中Hadoop的子项,所以Hama可以与Apache的HDFS进行完美的整合,利用HDFS对需要运行的任务和数据进行持久化存储,也可以在任何文件系统和数据库中。当然我们可以相信BSP模型的处理计算能力是相对没有极限的特别对于图计算来说,换句话说BSP模型就像MapReduce一样可以广泛的使用在任何一个分布式系统中,我们可以尝试的对实现使用Hama框架在分布式计算中得到更多的实践,比如:矩阵计算、排序计算、pagerank、BFS 等等。

Hama与MapReduce对比

MapReduce的不足:

1. MapReduce 主要针对松耦合型的数据处理应用, 对于不容易分解成众多相互独立子任务的紧耦合型计算任务, 处理效率很低。

2. MapReduce 不能显式的支持迭代计算。

3. MapReduce 是一种离线计算框架, 不适合进行流式计算和实时分析。

Hama的优势:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/03c4ef9b84c2f74409e2436d679f2132.html