GPS-Graph Processing System 改动源代码经验总结 (四)
HamaWhite原创,转载请注明出处。欢迎大家增加Giraph
技术交流群: 228591158
本文目的:在改动GPS源代码后,具体描写叙述怎样编译和分发到各Worker节点上。
以下以Graph Coloring 算法为例进行解说。本文基于GPS的前三篇文章。
1. 首先在Master(test150)上改动源代码。
Graph Coloring算法源代码路径:gps.examples.coloring包,主要改动ColoringVertex.java类。
该算法在Selection(MIS_1)阶段是依照顶点的出度大小概率性的选择UNDECIDED状态的顶点,源代码例如以下:
if (ColoringVertexType.NOT_IN_SET == value.type
|| ColoringVertexType.IN_SET == value.type) {
return;
}
double probability = getNeighborsSize() > 0 ? 1.0 /
((double) 2*value.numRemainingNeighbors) : 1;
if (Math.random() <= probability) {
value.type = ColoringVertexType.SELECTED_AS_POSSIBLE_IN_SET;
if (value.numRemainingNeighbors > 0) {
ColoringMessage newSelectedAsPossibleMessage = ColoringMessage
.newNeighborSelectedAsPossibleMessage(getId());
for (int neighborId : getNeighborIds()) {
if (neighborId >= 0) {
sendMessage(neighborId, newSelectedAsPossibleMessage);
}
}
}
}
以下改动为:选择全部的UNDECIDED状态的顶点,而非概率性选择。
改动后源代码例如以下:
if (ColoringVertexType.NOT_IN_SET == value.type
|| ColoringVertexType.IN_SET == value.type) {
return;
}
//double probability = getNeighborsSize() > 0 ? 1.0 /
// ((double) 2*value.numRemainingNeighbors) : 1;
//if (Math.random() <= probability) {
// value.type = ColoringVertexType.SELECTED_AS_POSSIBLE_IN_SET;
if (value.numRemainingNeighbors > 0) {
ColoringMessage newSelectedAsPossibleMessage = ColoringMessage
.newNeighborSelectedAsPossibleMessage(getId());
for (int neighborId : getNeighborIds()) {
if (neighborId >= 0) {
sendMessage(neighborId, newSelectedAsPossibleMessage);
}
}
}
//}
2. 由于之前已编译过GPS源代码,而且把Jar包等文件已分发到集群中各个Worker节点上,所以此步骤是删除之前的文件。删除Master节点trunk文件夹下的:gps-0.0.1-slave.tar.gz 、gps_node_runner.jar和classes文件夹,删除Worker节点trunk文件夹下的 conf 、gps-0.0.1-slave.tar.gz 、gps_node_runner.jar 、libs 、scripts。logs文件夹保留。
3. 參考 GPS-Graph Processing System集群安装笔记(一),又一次编译和分发Jar包等文件。
以下附上我的脚本。因中间使用了我自己的脚本,故不可直接使用,可是能够參考。脚本所在文件夹:/home/gougou/GPS/trunk。
cd /home/gougou/GPS/trunk
# delete master files
rm -rf gps_node_runner.jar
rm -rf classes
rm -rf gps-0.0.1-slave.tar.gz # delete worker files. the Shell writed by myself.
cd /home/gougou/ShellUtils
./deleteDirectory.sh /home/gougou/GPS/trunk/conf
./deleteDirectory.sh /home/gougou/GPS/trunk/gps-0.0.1-slave.tar.gz
./deleteDirectory.sh /home/gougou/GPS/trunk/gps_node_runner.jar
./deleteDirectory.sh /home/gougou/GPS/trunk/libs
./deleteDirectory.sh /home/gougou/GPS/trunk/scripts/ # compile GPS source code
cd /home/gougou/GPS/trunk
cd local-master-scripts
# generate gps_node_runner.jar and classes under trunk directory
./make_gps_node_runner_jar.sh
# generate gps-0.0.1-slave.tar.gz under trunk directory
./make_gps_tar_gz.sh cd ../master-scripts
cp slaves temp
cp slaves-12 slaves
./copy_and_untar_gps_tar_to_slaves.sh 12
mv temp slaves
4. 在trunk/master-scripts文件夹下,执行Graph Coloring 算法,命令例如以下:
./start_gps_nodes.sh 2 GC-Test5-1 \
"-ifs /user/gougou/GC-Test5/gc-5.txt \
-hcf /home/gougou/hadoop-1.0.3/conf/core-site.xml \
-jc gps.examples.coloring.JobConfiguration \
-mcfg /machine-configs/test_machine_config_2.cfg \
-log4jconfig /home/gougou/GPS/trunk/conf/log4j.config"
完!
GPS-Graph Processing System 改动源代码经验总结 (四)的更多相关文章
- 《Wonderland: A Novel Abstraction-Based Out-Of-Core Graph Processing System》章明星
在2018年3月28日于美国弗吉尼亚州威廉斯堡结束的ACM ASPLOS 2018会议上,计算机系高性能所师生发表了两篇长文.一篇是我系博士生章明星为第一作者,导师武永卫为通讯作者的“Wonderla ...
- 转债---Pregel: A System for Large-Scale Graph Processing(译)
转载:http://duanple.blog.163.com/blog/static/70971767201281610126277/ 作者:Grzegorz Malewicz, Matthew ...
- Pregel: A System for Large-Scale Graph Processing(译)
[说明:Pregel这篇是发表在2010年的SIGMOD上,Pregel这个名称是为了纪念欧拉,在他提出的格尼斯堡七桥问题中,那些桥所在的河就叫Pregel.最初是为了解决PageRank计算问题,由 ...
- ORA-01078: failure in processing system parameters & LRM-00109: could not open parameter file
安装了Oracle 12C后,启动数据库的过程中出现如下错误 SQL> startup ORA-01078: failure in processing system parameters LR ...
- ORA-01078:failure in processing system parameters
一.使用环境操作系统:rhel 6.5 x64数据库:Oracle 11.2.0.1.0数据库主目录:/u01/app/oracle/product/11.2.0/ 二.问题描述用sys用户登录sql ...
- oracle 实例启动报错(ORA-01078: failure in processing system parameters )
在启动Oracle数据库时报错,如下: [oracle@localhost ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Productio ...
- 启动Oracle时提示:ORA-01078:failure in processing system parameters
一.使用环境操作系统:CentOS release 6.2 (Final) 数据库:Oracle 12g数据库主目录:/ora12/product/product/12.1.0/db_1 二.问题描述 ...
- [解决思路]ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file
oracle数据库,服务器异常断电,导致数据库不能启动.... 错误提示: SQL> startup ORA-01078: failure in processing system parame ...
- Spark-1.5.2之改动源代码后的自己定义打包编译
Spark-1.5.2之自己定义打包编译,基于当前最新版本号的spark源代码1.5.2版本号. 自己编译spark是改动spark源代码的必备条件,改动的源代码自己定义打包生效后才干公布到生产环境中 ...
随机推荐
- HttpFileCollection 类使用
public ActionResult GetForm() { HttpRequest request = System.Web.HttpContext.Curre ...
- ACM_小Z的A+B
小Z的A+B Time Limit: 2000/1000ms (Java/Others) Problem Description: 小Z最喜欢A+B了,没事就研究研究,比如什么大整数A+B(就是100 ...
- C与C艹的内存管理方式
C 内存开辟出的空间一般可以分成:代码段,数据段(初始化的数据段, 为初始化的数据段BSS),堆,栈 代码段:保存程序文本,指令指针EIP就是指向代码段,可读可执行不可写 数据段:保存初始化的全局变量 ...
- springboot自定义常量配置
现在你建一个类: import org.springframework.boot.context.properties.ConfigurationProperties; /** * Created b ...
- 鼠标单击到 img行的时候图片隐藏方案
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 【转】Java 集合系列11之 Hashtable详细介绍(源码解析)和使用示例
概要 前一章,我们学习了HashMap.这一章,我们对Hashtable进行学习.我们先对Hashtable有个整体认识,然后再学习它的源码,最后再通过实例来学会使用Hashtable.第1部分 Ha ...
- 在CentOS6,CentOS7安装 Let'sEncrypt 免费SSL安全证书
相对来说,个人网站建立SSL是昂贵的,而且往往过程繁琐.一个标准的2048位证书费用至少150美元/年,网站除了要支付一笔昂贵的费用.重新配置Web服务器,并需要解决大量的配置错误.这让广大中小网站望 ...
- linux下用scp命令在两个服务器之间传输文件,利用php_scp函数进行文件传输
在linux下利用scp进行文件传输, 从服务器下载文件 scp username@servername:/path/filename /path/filename 上传本地文件到服务器 scp /p ...
- 安装nodejs6.9x以后,原来在nodejs4.2.x中运行正常的ionic项目出现问题的解决
安装nodejs6.9x以后,原来在nodejs4.2.x中运行正常的程序出现的问题.看错误信息,由于NodeJs版本升级导致的. 到提示的目录下运行:npm rebuild node-sass -g ...
- POJ_3279_(dfs)(状态)
---恢复内容开始--- Fliptile Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 8219 Accepted: ...