GPS-Graph Processing System集群安装笔记(一)

HamaWhite 原创,转载请注明出处!欢迎大家加入Giraph 技术交流群: 228591158
安装环境集群如下:

test150、test151、test152、test153、test154、test155、test156、test157、test158、test159、

test60、test61、test164。每个服务器上都建有gougou用户,test150为master,其余为slave

一、安装部分

1. 下载GPS安装包。在虚拟机上的/home/gougou目录下创建GPS文件夹,进入/home/gougou/GPS,执行下述命令。

svn co https://subversion.assembla.com/svn/phd-projects/gps/trunk

下载完成后在GPS文件夹下会生成trunk文件夹,trunk文件夹里包含了GPS的源码等文件。把trunk文件夹下的所有文件移动到GPS中,然后删除trunk文件夹。最后把整个GPS文件夹拷贝到test150:/home/gougou目录下。

注:下面的操作均在test150:/home/gougou/GPS/上进行。

 

2. GPS默认支持的hadoop版本是hadoop-core-0.20.203.0.jar。若想更新为更高的hadoop版本,如hadoop-1.0.3。则把libs下面的hadoop-core-0.20.203.0.jar替换为hadooop-core-1.0.3.jar即可。

$ rm libs/hadoop-core-0.20.203.0.jar

$ cp hadoop-1.0.3/hadooop-core-1.0.3.jarlibs/

 

3. 修改 local-master-script文件夹下的make_gps_node_runner_jar.shmanifest.txt文件,把里面的hadoop-core-0.20.203.0.jar替换为hadooop-core-1.0.3.jar即可。

 

4. 修改conf目录下的gps-env.sh,设置GPS_LOG_DIRECTORYGPS_DIR变量值。如下:

GPS_LOG_DIRECTORY=/home/gougou/GPS/logs

GPS_DIR=/home/gougou/GPS

 

5. 编译GPS和Examples源码。命令如下:

$ cd local-master-scripts  //进入目录          

//编译GPS源码和Examples

$ ./make_gps_node_runner_jar.sh 

//在GPS目录下,生成gps-0.0.1-slave.tar.gz

$ ./make_gps_tar_gz.sh

 

6. 在master-scripts目录下编辑slaves文件

cd  master-scripts

$ vi slaves ,加入slaves机器名。结果如下:

 GPS-Graph Processing System集群安装笔记(一)_第1张图片

7. 在每台slave机子上创建/home/gougou/GPS/目录(使用ShellUtils里面的脚本),

然后,拷贝并解压gps-0.0.1-slave.tar.gz到每个slave机子的/home/gougou/GPS文件夹下。命令如下:

$ cd master-scripts

$ copy_and_untar_gps_tar_to_slaves.sh nslaves    //nslaves写为12即可。

注:原来的copy_and_untar_gps_tar_to_slaves.sh脚本默认是把gps-0.0.1-slave.tar.gz拷贝每台slave的~/(即/home/gougou)目录下,并在该目录解压。Shell脚本如下:


而我们的目的是要拷贝到/home/gougou/GPS目录下,并解压。所以要修改copy_and_untar_gps_tar_to_slaves.sh脚本。先备份。

$cp copy_and_untar_gps_tar_to_slaves.sh copy_and_untar_gps_tar_to_slaves.sh.bak

修改后的如下:

 

8. 在每个slave上创建 第四步在conf/gps-env.sh定义的GPS_LOG_DIRECTOR

$ cd master-scripts

$ ./make_gps_log_directories_in_slaves.sh nslaves //nslaves写为12即可。

强调:千万务必在master(test150)的/home/gougou/GPS/目录下创建logs文件夹,否则不会启动gps-master进程。出错!!!

此错误花费一天时间所解。

 

二、运行ExampleOn GPS

9. 配置machine-config文件(在master-scripts下新建machine_config_test.cfg),包含每个节点(master和slave)的ID、机器名和端口三部分。master的ID为-1,slave从0开始,依次增加1。端口为通信端口,可自定义。

GPS-Graph Processing System集群安装笔记(一)_第2张图片

10.把machine-config上传到HDFS上。

hadoop fs -mkdir machine-configs

hadoop fs –put machine_config_test.cfg machine-configs

 

11.上传测试数据到HDFS上。

hadoop fs -mkdir GPSTestData

hadoop fs -put soc-Epinions1-d-n.txt GPSTestData

 

12.在master-scripts目录里运行start_gps_nodes.sh来运行job。原理:在master和每个slave上的scripts文件夹里运行./start_gps_nodes.sh脚本,该scripts/start_gps_nodes.sh脚本会运行gps_node_runner.jar来执行job。

注:自带的master-scripts/start_gps_nodes.sh脚本里,ssh到slave时,没有写机器名(如只是ssh test145 … ,因为如果master采用的是gougou用户,sshtest154后还默认是gougou用户),虽不会出错,但是不完善。原有:


故在ssh时添加用户,使其成为ssh user@test1xx。修改后如下:

GPS-Graph Processing System集群安装笔记(一)_第3张图片

 

运行job的命令如下:

 

  ./start_gps_nodes.sh 12 quick-start \

"-ifs GPSTestData/soc-Epinions1-d-n.txt \

-hcf/home/gougou/hadoop-1.0.3/conf/core-site.xml \

-jcgps.examples.pagerank.PageRankVertex###JobConfiguration \

-mcfg machine-configs/test_machine_config.cfg \

-log4jconfig/home/gougou/GPS/trunk/conf/log4j.config \

-other -max###40"

运行后,在slave机子上,在/home/gougou/GPS/ logs目录下查看运行log,会发现提示错误:java:commandnot found。

原因:ssh gougou@test ‘command’ ,该command只能识别系统自带的命令,因此不能识别scripts/start_gps_nodes.sh脚本里面的java命令。


修改方法1(原创):在scripts/start_gps_nodes.sh脚本里,添加

source /etc/profile

GPS-Graph Processing System集群安装笔记(一)_第4张图片

JAVA_HOME的环境变量定义在该配置文件中,即运行脚本的时候编译下.bashrc,就能识别脚本后面的java命令。

注:若把Java环境变量设置在.bashrc中,然后在脚本scripts/start_gps_nodes.sh中

添加 source /home/gougou/.bashrc 是不行的,还是不能识别java命令。

修改方法2(原创):在scripts/start_gps_nodes.sh脚本里,添加

写java命令的全路径。/home/gougou/jdk1.7.0_25/bin/java即可

 

修改后调用master-scripts里的脚本,把修改后的start_gps_nodes.sh拷贝到所有slave上。

./copy_start_gps_node_script_to_slaves.sh12


转载请注明出处。


你可能感兴趣的:(Graph,processing,SYS,gps)