Giraph
数据探险家
专注分享Flink、Hadoop、Spark等大数据及AI技术,爱好原创
展开
-
Giraph源码分析(三)—— 消息通信
1. 由前文知道每个BSPServiceWorker有一个WorkerServer对象,WorkerServer对象里面又有ServerData对象,作为数据实体。ServerData中包含该Worker的partitionStore、edgeStore、incomingMessageStore、currentMessageStore、聚集值等。 其中incomingMessageStor原创 2014-04-10 11:19:46 · 3766 阅读 · 0 评论 -
Giraph 基础介绍
Giraph基于Hadoop而建,将MapReduce中Mapper进行封装,未使用reducer。在Mapper中进行多次迭代,每次迭代等价于BSP模型中的SuperStep。一个Hadoop Job等价于一次BSP作业。基础结构如下图所示。欢迎访问: 西北工业大学 - 大数据与知识管理研究室 (Northwestern Polytechnical University - BigData and Knowledge Management Lab),链接:http://wowbigdata.cn/,ht原创 2014-03-30 19:54:02 · 8486 阅读 · 0 评论 -
Giraph运行报错,Error: Exceeded limits on number of counters - Counters=120 Limit=120, exiting...
1. 近日用Giraph跑大数据的SSSP时,遇到如下错误:org.apache.hadoop.mapred.Counters$CountersExceededException: Error: Exceeded limits on number of counters - Counters=120 Limit=120 at org.apache.hadoop.mapred.Counters$Group.getCounterForName(Counters.java:315) at org.apache.原创 2014-04-19 08:48:34 · 2427 阅读 · 1 评论 -
Giraph源码分析(一) —— 启动ZooKeeper服务
欢迎访问: 西北工业大学 - 大数据与知识管理研究室 (Northwestern Polytechnical University - BigData and Knowledge Management Lab),链接:http://wowbigdata.cn/,http://wowbigdata.net.cn/,http://wowbigdata.com.cn。说明:(1) 实验环境.原创 2014-03-30 19:45:30 · 5243 阅读 · 0 评论 -
Giraph源码分析(四)—— Master 如何检查Worker启动成功
本文的目的:说明Giraph如何借助ZooKeeper来实现Master与Workers间的同步(?不太确定)。环境:在单机上(机器名:giraphx)启动了2个workers。Giraph遵从单Master多Workers结构,BSPServiceMaster使用MasterThread线程来进行全局的同步。每个Worker启动成功后,会向Master汇报自身的健康状况,那么Master是如何检测Workers是否都成功启动了?原创 2014-04-11 17:02:09 · 2152 阅读 · 0 评论 -
Giraph源码分析(六)——Edge 分析
在Vertex类中,顶点的存储方式采用邻接表形式。每个顶点有 VertexId、VertexValue、OutgoingEdges和Halt,boolean型的halt变量用于记录顶点的状态,false时表示active,true表示inactive状态。原创 2014-04-21 15:42:11 · 2787 阅读 · 0 评论 -
Giraph源码分析(九)—— Aggregators 原理解析
改进:采用分片聚集 (sharded aggregators) . 在每个超级步的最后,每个聚集器被派发给一个Worker,该Worker接受和聚集其他Workers发送给该聚集器的值。然后Workers把自己的所有的聚集器发送给Master,这样Master就无需执行任何聚集,只是接收每个聚集器的最终值。在MasterCompute.compute执行后,Master不是直接把所有的聚集器发送给所有的Workers,而是发送给聚集器所属的Worker,然后每个Worker再把其上的聚集器发送给所有的Wor原创 2014-05-22 22:11:58 · 4359 阅读 · 0 评论 -
Giraph源码分析(八)—— 统计每个SuperStep中参与计算的顶点数目
目的:科研中,需要分析在每次迭代过程中参与计算的顶点数目,来进一步优化系统。比如,在SSSP的compute()方法最后一行,都会把当前顶点voteToHalt,即变为InActive状态。所以每次迭代完成后,所有顶点都是InActive状态。在大同步后,收到消息的顶点会被激活,变为Active状态,然后调用顶点的compute()方法。本文的目的就是统计每次迭代过程中,参与计算的顶点数目。下面附上SSSP的compute()方法:原创 2014-05-06 09:14:40 · 2952 阅读 · 0 评论 -
Giraph源码分析(七)—— 添加消息统计功能
目的:近日因实验要求,需分析Giraph每个超步发送的消息量。Giraph自带能统计每个超步的执行时间,而无消息统计功能。本文通过添加和修改Giraph源码来实现此功能。原创 2014-04-24 15:17:15 · 2113 阅读 · 0 评论 -
Giraph添加应用程序Weakly Connected Components算法
目的:举例说明如何在Giraph中添加应用程序,以WCC(Weakly Connected Components)算法为例,描述怎么添加Vertex的子类,自定义输入输出格式和使用Combiner等。原创 2014-05-06 10:44:27 · 4787 阅读 · 1 评论 -
Giraph源码分析(二)——启动Master/Worker服务
BspServiceWorker类有WorkerClient和WorkerServer实例,分别作为IPC通信的客户端和服务器端,通过Netty来发送数据。WorkerClient实例实际为NettyWorkerClient对象,WorkerServert实例实际为NettyWorkerServer对象。原创 2014-04-14 16:12:33 · 2751 阅读 · 0 评论 -
云计算环境下的大规模图数据处理技术
1 引 言图是计算机科学中最常用的一类抽象数据结构, 在结构和语义方面比线性表和树更为复杂, 更具有一般性表示能力。 现实世界中的许多应用场景都需要用图结构表示, 与图相关的处理和应用几乎无所不在。 传统应用如最优运输路线的确定、疾病爆发路径的预测、科技文献的引用关系等; 新兴应用如社交网络分析、语义Web 分析、生物信息网络分析等。虽然图的应用和处理技术已经发展了很长时间, 理论转载 2014-04-30 15:33:45 · 4153 阅读 · 3 评论 -
Giraph 源码分析(五)—— 加载数据+同步总结
master和workers同步过程总结。 (1)master创建znode A,然后检测A的子节点数目是否等于workers数目,不等于就陷入等待。某个worker创建一个子节点后,就会唤醒master进行检测一次。 (2)每个worker进行自己的工作,完成后,创建A的子节点A1。然后等待master创建znode B。 (3)若master检测到A的子节点数目等于workers的数目时,创建Znode B (4)master创建B 节点后,会激活各个原创 2014-04-14 20:46:23 · 3130 阅读 · 0 评论 -
Giraph-Eclipse安装-源码调试
Giraph-Eclipse安装-调试源码1. 官网上下载giraph-1.0.0,放在 /home/hadoop目录下,把giraph-1.0.0文件夹重命名为giraph-1.0.0-src。2. 进入/home/hadoop/giraph-1.0.0-src 目录,用Maven对源码进行构建,命令如下:# mvn package –DskipTests原创 2013-11-06 19:08:56 · 6037 阅读 · 19 评论