Pregel设计在google的计算机集群结构之上。一个计算机集群(cluster)就是通用PC按rack(一组PC机)构成,Rack之间具有较高的数据传输速度。集群中通常包含一个域名服务器(namenode),采用分布式文件系统,例如:GFS(google 分布式文件系统),HDFS(Hadroop 分布式文件系统),TFS(淘宝分布式文件系统)等。域名服务器包含了分布式文件系统中文件名与文件地址之间的键值对索引(index)。
Pregel库首先分割图结构的数据,每一个分割包含一组顶点以及由这组顶点向外的边,每个顶点由一个编号(vertex_ID)唯一确定。库默认的N份分割函数是哈希函数(hash(vertex_ID) mod N),当然用户可以自己编写分割函数以代替它。
将各顶点分配给计算机的方法在Pregel中对用户并不是很透明。某些应用采用默认的分配方式性能还好,但是有时需要用户定义分配函数以更好的利用本地数据。例如,对于web graph(网页图),通常将顶点分配给其对应网页所在站点。
Pregel程序运行流程:
用户程序的多份拷贝开始在集群上运行。其中一份拷贝作为master(负责者),只负责协调其余worker(工作者)的活动。
master决定图结构数据的分割,并将一份或多份分割分配给worker。分割数量可以由用户控制,更大的分割数量通常具有更好的并行性,与均衡性,因此能提高性能。每个worker负责维护它所分配的那部分图的分割的状态,执行用户定义的compute()方法,以及管理消息的接收与发送。每个worker都具有图分割的所有信息。
master发送给各worker相应的用户输入信息。
待所有worker都就绪后,master发送指令启动一次迭代(superstep)。一个分割对应一个进程,并为分割中的每个顶点执行compute()方法,接受消息,发送消息。当worker结束迭代之前,会给master发送尚活跃的顶点数。循环该步,直到所有顶点都终止(non-active)。
计算结束,master发送指令,worker保存graph计算结果。
转载于:https://my.oschina.net/jhone/blog/193928
分享到:
相关推荐
此外,图计算模型如Giraph和Pregel等,为并行处理图数据提供了框架支撑,它们通过消息传递来实现图的分布式计算,使得大规模图处理成为可能。 消息通信机制是云计算环境下分布式计算的关键。设计高效的消息传递机制...
并行框架的模型结构大致分为三类:基于消息传递的模型、基于数据流的模型和基于图的模型。在基于消息传递的模型中,MPI (Message Passing Interface) 是一种广泛使用的标准规范,它支持C和Fortran语言,并提供了一个...
例如,Pregel 和 Giraph 等分布式图处理框架支持大规模图数据的排序。 - **基于流的排序算法**:处理连续数据流,提供实时排序能力。 #### Spark 中的排序优化 Spark 是一个通用、易于使用的集群计算框架,支持...
图数据库是一种以图形结构存储数据的数据库,其核心在于存储和查询图结构数据。图由节点(顶点)和边组成,节点代表实体,边则表示实体之间的关系。相较于传统的关系型数据库,图数据库更适合处理高度互连的数据集,...
对图进行负载划分时,要确保数据的分割尽量均匀,并且在执行过程中能够动态适应图结构变化或节点故障。 分布式图处理系统的关键技术包括图的存储表示、图操作的并行化与分布式执行、图数据的局部性优化、计算节点的...
- 不变性:GraphX中的图结构一旦创建,就不能被修改。 - 分布性:图数据被分布存储在集群的不同节点上。 - 容错性:GraphX具有自动恢复功能,能够容忍部分节点的失败。 - **关键点**: - 边分割和点分割:GraphX...
5. Pregel:Pregel是一种处理大规模图数据的分布式计算框架。它提供了一种类似于MapReduce的编程模型,但专门针对图算法。Pregel通过迭代的方式执行图遍历和计算,支持大规模社交网络分析、网络路由优化等图计算任务...
- **分布式处理**:GoldenOrb充分利用分布式计算的优势,将大型图分割为多个部分,分配到不同的节点上进行并行处理,提高了计算效率。 - **容错机制**:系统具备自动故障恢复能力,即使部分节点出现问题,也能保证...
分布式数据结构是解决这一问题的有效手段,它们能够在多核环境下并行处理任务,提高整体计算速度。本压缩包文件“多核计算中的分布式数据结构.rar”很可能包含了关于如何设计和实现这类数据结构的详细资料。 分布式...
4. **图计算**:针对图结构数据进行处理,如 Pregel、PowerGraph 和 GraphX。 5. **内存计算**:提高数据处理速度,减少磁盘I/O操作,如 Dremel、HANA 和 Redis。 #### 四、大数据的工作流程 1. **数据采集与...
这个系统的核心理念是将大规模图数据分割成小片段,使得每个片段可以独立地在内存中处理,从而克服了大数据处理中的内存限制问题。GraphChi的名字来源于“图形”(Graph)与“Chi方程”(Cholesky),后者是一种矩阵...
Giraph将大型图分割成小块,这些块可以在Hadoop的MapReduce任务中并行处理。每个顶点在每次超级步中执行一个用户定义的函数(Vertex Computation),并可能向其邻居发送消息。当所有顶点在当前超级步中都完成计算...
4. **Pregel**:Pregel 是一种图计算系统,用于大规模图数据处理。在 Pregel 中,不同顶点间的信息交换采用纯消息传递模型,即 C. 纯消息传递模型。 5. **文档数据库**:提供嵌入式文档功能的数据库指的是能够存储...
- **现在**: Facebook等公司继续推动迭代计算框架的发展,如Pregel等,用于处理复杂的图数据结构。 - **未来**: 随着技术的进步,未来可能会出现更加高效、智能的数据处理方法。 #### 五、MapReduce工作原理 - **...
弹性分布式属性图的特点在于其弹性(resilient),意味着它可以轻松地处理数据丢失或节点故障的情况,并能够自动恢复。 **1.3 运行图计算程序** 在SparkGraphX中运行图计算程序通常涉及以下几个步骤: 1. **图的...
Pregel是Google在2010年发布的可扩展图计算框架,它针对图数据的处理进行了优化。Pregel采用了工作集模型,允许节点间的迭代通信,非常适合处理社交网络、网络路由等问题。Pregel的出现使得图算法在大规模数据集上的...
Pregel是一个可扩展的图计算框架,用于处理大规模图数据,如社交网络分析。Dremel则是一种在线可视化工具,它能快速分析和呈现大规模数据集,为决策者提供实时洞察。 Google大数据的应用广泛,涵盖了搜索、广告、...
在分布式环境中,图会被分割到多个节点进行处理,由于计算速度和数据分布的差异,确保迭代的并行性是一项挑战。 Pregel模型提出了“像顶点一样思考”的理念。以顶点为中心,每个顶点需要经历接受消息、计算消息和...
7. **Pregel**:Google的图计算框架,用于处理大规模图形数据,例如社交网络分析、网页链接结构分析等。 8. **Borg**:Google的集群管理系统,自动调度和管理数以万计的服务器上的工作负载,确保服务的高效运行和...
Spark Streaming支持微批处理,将实时数据流分割成小批量处理,保持了Spark的高性能和低延迟。它可以与多种数据源如Kafka、Flume和TCP套接字集成,实现复杂的数据流处理应用。 六、Spark SQL与DataFrame Spark SQL...